summaryrefslogtreecommitdiff
path: root/mysql-test/main
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main')
-rw-r--r--mysql-test/main/1st.result1
-rw-r--r--mysql-test/main/almost_full.result8
-rw-r--r--mysql-test/main/alter_table.result254
-rw-r--r--mysql-test/main/analyze.result4
-rw-r--r--mysql-test/main/backup_lock.result48
-rw-r--r--mysql-test/main/backup_lock.test48
-rw-r--r--mysql-test/main/backup_lock_debug.result6
-rw-r--r--mysql-test/main/backup_lock_debug.test7
-rw-r--r--mysql-test/main/backup_locks.result2
-rw-r--r--mysql-test/main/backup_locks.test2
-rw-r--r--mysql-test/main/backup_log.inc155
-rw-r--r--mysql-test/main/backup_log.result241
-rw-r--r--mysql-test/main/backup_log.test39
-rw-r--r--mysql-test/main/backup_stages.result6
-rw-r--r--mysql-test/main/backup_stages.test3
-rw-r--r--mysql-test/main/binary.test3
-rw-r--r--mysql-test/main/bind_address_resolution.opt1
-rw-r--r--mysql-test/main/bind_address_resolution.result11
-rw-r--r--mysql-test/main/bind_address_resolution.test22
-rw-r--r--mysql-test/main/bootstrap.result6
-rw-r--r--mysql-test/main/bootstrap.test26
-rw-r--r--mysql-test/main/bug12427262.test2
-rw-r--r--mysql-test/main/bug39022.result2
-rw-r--r--mysql-test/main/bug39022.test2
-rw-r--r--mysql-test/main/bug47671.result8
-rw-r--r--mysql-test/main/cast.result18
-rw-r--r--mysql-test/main/cli_options_force_protocol_not_win.result24
-rw-r--r--mysql-test/main/cli_options_force_protocol_not_win.test37
-rw-r--r--mysql-test/main/cli_options_force_protocol_win.opt1
-rw-r--r--mysql-test/main/cli_options_force_protocol_win.result24
-rw-r--r--mysql-test/main/cli_options_force_protocol_win.test37
-rw-r--r--mysql-test/main/column_compression.result36
-rw-r--r--mysql-test/main/column_compression.test2
-rw-r--r--mysql-test/main/column_compression_rpl.opt1
-rw-r--r--mysql-test/main/comment_database.result4
-rw-r--r--mysql-test/main/comment_table.result2
-rw-r--r--mysql-test/main/commit.result5
-rw-r--r--mysql-test/main/commit.test5
-rw-r--r--mysql-test/main/compound.result4
-rw-r--r--mysql-test/main/compound.test4
-rw-r--r--mysql-test/main/compress.result8
-rw-r--r--mysql-test/main/connect.result6
-rw-r--r--mysql-test/main/connect.test6
-rw-r--r--mysql-test/main/connect_debug.result4
-rw-r--r--mysql-test/main/constraints.result2
-rw-r--r--mysql-test/main/crash_commit_before.result2
-rw-r--r--mysql-test/main/create-uca.result8
-rw-r--r--mysql-test/main/create-uca.test2
-rw-r--r--mysql-test/main/create.result26
-rw-r--r--mysql-test/main/create_drop_role.result1
-rw-r--r--mysql-test/main/create_or_replace.result4
-rw-r--r--mysql-test/main/create_or_replace.test9
-rw-r--r--mysql-test/main/create_utf8.result2
-rw-r--r--mysql-test/main/ctype_big5.result256
-rw-r--r--mysql-test/main/ctype_cp1250_ch.result10
-rw-r--r--mysql-test/main/ctype_cp1251.result2
-rw-r--r--mysql-test/main/ctype_cp932_binlog_stm.result384
-rw-r--r--mysql-test/main/ctype_create.result12
-rw-r--r--mysql-test/main/ctype_eucjpms.result384
-rw-r--r--mysql-test/main/ctype_euckr.result256
-rw-r--r--mysql-test/main/ctype_filename.result4
-rw-r--r--mysql-test/main/ctype_filesystem.result2
-rw-r--r--mysql-test/main/ctype_gb2312.result256
-rw-r--r--mysql-test/main/ctype_gbk.result256
-rw-r--r--mysql-test/main/ctype_gbk.test2
-rw-r--r--mysql-test/main/ctype_gbk_export_import.result2
-rw-r--r--mysql-test/main/ctype_latin1.result4
-rw-r--r--mysql-test/main/ctype_ldml.result50
-rw-r--r--mysql-test/main/ctype_ldml.test6
-rw-r--r--mysql-test/main/ctype_many.result12
-rw-r--r--mysql-test/main/ctype_mb.result26
-rw-r--r--mysql-test/main/ctype_recoding.result4
-rw-r--r--mysql-test/main/ctype_sjis.result384
-rw-r--r--mysql-test/main/ctype_uca.result96
-rw-r--r--mysql-test/main/ctype_uca_innodb.result2
-rw-r--r--mysql-test/main/ctype_uca_innodb.test2
-rw-r--r--mysql-test/main/ctype_uca_partitions.result2
-rw-r--r--mysql-test/main/ctype_ucs.test4
-rw-r--r--mysql-test/main/ctype_ujis.result384
-rw-r--r--mysql-test/main/ctype_upgrade.result232
-rw-r--r--mysql-test/main/ctype_utf8.result732
-rw-r--r--mysql-test/main/ctype_utf8.test2
-rw-r--r--mysql-test/main/ctype_utf8_def_upgrade.result4
-rw-r--r--mysql-test/main/ctype_utf8_uca.result22
-rw-r--r--mysql-test/main/ctype_utf8mb4.result22
-rw-r--r--mysql-test/main/ctype_utf8mb4_heap.result20
-rw-r--r--mysql-test/main/ctype_utf8mb4_innodb-master.opt1
-rw-r--r--mysql-test/main/ctype_utf8mb4_innodb.result20
-rw-r--r--mysql-test/main/ctype_utf8mb4_myisam.result20
-rw-r--r--mysql-test/main/custom_aggregate_functions.result24
-rw-r--r--mysql-test/main/ddl_i18n_koi8r.result426
-rw-r--r--mysql-test/main/ddl_i18n_koi8r.test2
-rw-r--r--mysql-test/main/ddl_i18n_utf8.result594
-rw-r--r--mysql-test/main/ddl_i18n_utf8.test2
-rw-r--r--mysql-test/main/debug_sync.result59
-rw-r--r--mysql-test/main/debug_sync.test41
-rw-r--r--mysql-test/main/default.result6
-rw-r--r--mysql-test/main/delayed.result2
-rw-r--r--mysql-test/main/delayed.test2
-rw-r--r--mysql-test/main/derived.test2
-rw-r--r--mysql-test/main/derived_cond_pushdown.result171
-rw-r--r--mysql-test/main/derived_cond_pushdown.test3
-rw-r--r--mysql-test/main/derived_split_innodb.result3
-rw-r--r--mysql-test/main/derived_split_innodb.test5
-rw-r--r--mysql-test/main/drop.result2
-rw-r--r--mysql-test/main/drop_table_force.result1
-rw-r--r--mysql-test/main/dyncol.result14
-rw-r--r--mysql-test/main/dyncol.test2
-rw-r--r--mysql-test/main/empty_string_literal.result10
-rw-r--r--mysql-test/main/endspace.result3
-rw-r--r--mysql-test/main/endspace.test3
-rw-r--r--mysql-test/main/events_1.result36
-rw-r--r--mysql-test/main/events_2.result10
-rw-r--r--mysql-test/main/events_logs_tests.result3
-rw-r--r--mysql-test/main/events_logs_tests.test3
-rw-r--r--mysql-test/main/events_restart.test1
-rw-r--r--mysql-test/main/explain.result3
-rw-r--r--mysql-test/main/explain.test2
-rw-r--r--mysql-test/main/explain_json.result2
-rw-r--r--mysql-test/main/explain_non_select.result2
-rw-r--r--mysql-test/main/fast_prefix_index_fetch_innodb.result3
-rw-r--r--mysql-test/main/fast_prefix_index_fetch_innodb.test4
-rw-r--r--mysql-test/main/features,ps.rdiff21
-rw-r--r--mysql-test/main/features.test1
-rw-r--r--mysql-test/main/fetch_first.result1408
-rw-r--r--mysql-test/main/fetch_first.test1080
-rw-r--r--mysql-test/main/flush-innodb.result2
-rw-r--r--mysql-test/main/flush-innodb.test2
-rw-r--r--mysql-test/main/flush.result108
-rw-r--r--mysql-test/main/flush.test122
-rw-r--r--mysql-test/main/flush_notembedded.result68
-rw-r--r--mysql-test/main/flush_notembedded.test66
-rw-r--r--mysql-test/main/flush_read_lock.result9
-rw-r--r--mysql-test/main/flush_read_lock.test13
-rw-r--r--mysql-test/main/frm_bad_row_type-7333.result4
-rw-r--r--mysql-test/main/fulltext.result20
-rw-r--r--mysql-test/main/fulltext.test4
-rw-r--r--mysql-test/main/fulltext2.test2
-rw-r--r--mysql-test/main/func_crypt.result10
-rw-r--r--mysql-test/main/func_crypt.test11
-rw-r--r--mysql-test/main/func_group.test6
-rw-r--r--mysql-test/main/func_hybrid_type.result28
-rw-r--r--mysql-test/main/func_in.result228
-rw-r--r--mysql-test/main/func_in.test139
-rw-r--r--mysql-test/main/func_json.result37
-rw-r--r--mysql-test/main/func_json.test24
-rw-r--r--mysql-test/main/func_json_notembedded.result42
-rw-r--r--mysql-test/main/func_json_notembedded.test38
-rw-r--r--mysql-test/main/func_misc.result11
-rw-r--r--mysql-test/main/func_misc.test5
-rw-r--r--mysql-test/main/func_regexp_pcre.result4
-rw-r--r--mysql-test/main/func_str.result40
-rw-r--r--mysql-test/main/func_str.test6
-rw-r--r--mysql-test/main/func_system.result18
-rw-r--r--mysql-test/main/func_test.test3
-rw-r--r--mysql-test/main/func_time.test7
-rw-r--r--mysql-test/main/func_weight_string.test5
-rw-r--r--mysql-test/main/get_diagnostics.result8
-rw-r--r--mysql-test/main/get_diagnostics.test4
-rw-r--r--mysql-test/main/gis.result4
-rw-r--r--mysql-test/main/grant.result46
-rw-r--r--mysql-test/main/grant.test14
-rw-r--r--mysql-test/main/grant2.result4
-rw-r--r--mysql-test/main/grant2.test2
-rw-r--r--mysql-test/main/grant4.result16
-rw-r--r--mysql-test/main/grant4.test2
-rw-r--r--mysql-test/main/grant5.result4
-rw-r--r--mysql-test/main/grant_4332.result18
-rw-r--r--mysql-test/main/grant_4332.test14
-rw-r--r--mysql-test/main/grant_lowercase.result2
-rw-r--r--mysql-test/main/grant_lowercase.test2
-rw-r--r--mysql-test/main/grant_repair.result2
-rw-r--r--mysql-test/main/group_min_max.result23
-rw-r--r--mysql-test/main/group_min_max.test18
-rw-r--r--mysql-test/main/having.result6
-rw-r--r--mysql-test/main/having.test4
-rw-r--r--mysql-test/main/having_cond_pushdown.test4
-rw-r--r--mysql-test/main/ignored_index.result530
-rw-r--r--mysql-test/main/ignored_index.test464
-rw-r--r--mysql-test/main/ignored_index_innodb.result7
-rw-r--r--mysql-test/main/ignored_index_innodb.test16
-rw-r--r--mysql-test/main/index_merge_innodb.result5
-rw-r--r--mysql-test/main/index_merge_innodb.test6
-rw-r--r--mysql-test/main/information_schema.result192
-rw-r--r--mysql-test/main/information_schema.test17
-rw-r--r--mysql-test/main/information_schema_all_engines-master.opt1
-rw-r--r--mysql-test/main/information_schema_all_engines.result8
-rw-r--r--mysql-test/main/information_schema_db.test2
-rw-r--r--mysql-test/main/information_schema_parameters.result46
-rw-r--r--mysql-test/main/information_schema_routines.result110
-rw-r--r--mysql-test/main/innodb_ext_key.result11
-rw-r--r--mysql-test/main/innodb_ext_key.test1
-rw-r--r--mysql-test/main/innodb_mysql_lock.result2
-rw-r--r--mysql-test/main/innodb_mysql_lock.test5
-rw-r--r--mysql-test/main/innodb_mysql_lock2.test2
-rw-r--r--mysql-test/main/innodb_utf8.test2
-rw-r--r--mysql-test/main/invisible_field.test2
-rw-r--r--mysql-test/main/invisible_field_debug.result32
-rw-r--r--mysql-test/main/join.result10
-rw-r--r--mysql-test/main/join_cache.result4
-rw-r--r--mysql-test/main/join_cache.test4
-rw-r--r--mysql-test/main/join_nested.result8
-rw-r--r--mysql-test/main/join_nested_jcl6.result10
-rw-r--r--mysql-test/main/join_outer_innodb.result3
-rw-r--r--mysql-test/main/join_outer_innodb.test3
-rw-r--r--mysql-test/main/json_debug_nonembedded.result29
-rw-r--r--mysql-test/main/json_debug_nonembedded.test39
-rw-r--r--mysql-test/main/key.result16
-rw-r--r--mysql-test/main/keywords.result50
-rw-r--r--mysql-test/main/kill.test2
-rw-r--r--mysql-test/main/locale.result6
-rw-r--r--mysql-test/main/lock.result22
-rw-r--r--mysql-test/main/lock.test25
-rw-r--r--mysql-test/main/lock_kill.test4
-rw-r--r--mysql-test/main/lock_sync.test3
-rw-r--r--mysql-test/main/locking_clause.result164
-rw-r--r--mysql-test/main/locking_clause.test165
-rw-r--r--mysql-test/main/log_tables.result30
-rw-r--r--mysql-test/main/log_tables.test3
-rw-r--r--mysql-test/main/log_tables_upgrade.result102
-rw-r--r--mysql-test/main/long_host.result159
-rw-r--r--mysql-test/main/long_host.test198
-rw-r--r--mysql-test/main/long_unique.result413
-rw-r--r--mysql-test/main/long_unique_big.result8
-rw-r--r--mysql-test/main/long_unique_bugs.result16
-rw-r--r--mysql-test/main/long_unique_update.result47
-rw-r--r--mysql-test/main/long_unique_using_hash.result18
-rw-r--r--mysql-test/main/lowercase_fs_off.result102
-rw-r--r--mysql-test/main/lowercase_fs_off.test1
-rw-r--r--mysql-test/main/lowercase_table5.result4
-rw-r--r--mysql-test/main/merge.result8
-rw-r--r--mysql-test/main/merge.test4
-rw-r--r--mysql-test/main/mix2_myisam.result34
-rw-r--r--mysql-test/main/mrr_icp_extra.result2
-rw-r--r--mysql-test/main/myisam.result142
-rw-r--r--mysql-test/main/myisam.test2
-rw-r--r--mysql-test/main/myisam_crash_before_flush_keys.result6
-rw-r--r--mysql-test/main/myisam_crash_before_flush_keys.test2
-rw-r--r--mysql-test/main/myisam_debug.test2
-rw-r--r--mysql-test/main/myisam_debug_keys.test2
-rw-r--r--mysql-test/main/myisam_recover.result14
-rw-r--r--mysql-test/main/myisam_recover.test2
-rw-r--r--mysql-test/main/mysql.result12
-rw-r--r--mysql-test/main/mysql5613mysql.result168
-rw-r--r--mysql-test/main/mysql_client_test.test2
-rw-r--r--mysql-test/main/mysql_install_db_win.result18
-rw-r--r--mysql-test/main/mysql_install_db_win.test44
-rw-r--r--mysql-test/main/mysql_json_mysql_upgrade.result102
-rw-r--r--mysql-test/main/mysql_json_mysql_upgrade_with_plugin_loaded.result102
-rw-r--r--mysql-test/main/mysql_locale_posix.result2
-rw-r--r--mysql-test/main/mysql_not_windows.result2
-rw-r--r--mysql-test/main/mysql_tzinfo_to_sql_symlink.result462
-rw-r--r--mysql-test/main/mysql_tzinfo_to_sql_symlink.test148
-rw-r--r--mysql-test/main/mysql_upgrade-20228.result102
-rw-r--r--mysql-test/main/mysql_upgrade-6984.result102
-rw-r--r--mysql-test/main/mysql_upgrade-6984.test1
-rw-r--r--mysql-test/main/mysql_upgrade.result1401
-rw-r--r--mysql-test/main/mysql_upgrade.test5
-rw-r--r--mysql-test/main/mysql_upgrade_mysql_json_datatype.result102
-rw-r--r--mysql-test/main/mysql_upgrade_noengine.result306
-rw-r--r--mysql-test/main/mysql_upgrade_ssl.result102
-rw-r--r--mysql-test/main/mysql_upgrade_view.result322
-rw-r--r--mysql-test/main/mysql_upgrade_view.test2
-rw-r--r--mysql-test/main/mysqladmin.result9
-rw-r--r--mysql-test/main/mysqladmin.test45
-rw-r--r--mysql-test/main/mysqlbinlog.result24
-rw-r--r--mysql-test/main/mysqlbinlog_row_compressed.result174
-rw-r--r--mysql-test/main/mysqlbinlog_row_compressed.test2
-rw-r--r--mysql-test/main/mysqlbinlog_row_minimal.result176
-rw-r--r--mysql-test/main/mysqlbinlog_row_minimal.test4
-rw-r--r--mysql-test/main/mysqlbinlog_stmt_compressed.result110
-rw-r--r--mysql-test/main/mysqlbinlog_stmt_compressed.test2
-rw-r--r--mysql-test/main/mysqlcheck.result11
-rw-r--r--mysql-test/main/mysqld--help.result32
-rw-r--r--mysql-test/main/mysqldump-max.test2
-rw-r--r--mysql-test/main/mysqldump-system,win.rdiff19
-rw-r--r--mysql-test/main/mysqldump-system.result80
-rw-r--r--mysql-test/main/mysqldump-system.test24
-rw-r--r--mysql-test/main/mysqldump-utf8mb4.result2
-rw-r--r--mysql-test/main/mysqldump.result128
-rw-r--r--mysql-test/main/mysqldump.test4
-rw-r--r--mysql-test/main/mysqlslap.result2
-rw-r--r--mysql-test/main/mysqltest.result26
-rw-r--r--mysql-test/main/mysqltest_cont_on_error.result4
-rw-r--r--mysql-test/main/mysqltest_tracking_info.result6
-rw-r--r--mysql-test/main/mysqltest_tracking_info.test6
-rw-r--r--mysql-test/main/named_pipe.result8
-rw-r--r--mysql-test/main/null.result2
-rw-r--r--mysql-test/main/null.test2
-rw-r--r--mysql-test/main/olap.test3
-rw-r--r--mysql-test/main/opt_trace.result697
-rw-r--r--mysql-test/main/opt_trace.test177
-rw-r--r--mysql-test/main/opt_trace_index_merge.result10
-rw-r--r--mysql-test/main/opt_trace_index_merge_innodb.result9
-rw-r--r--mysql-test/main/opt_trace_security.result8
-rw-r--r--mysql-test/main/order_by.result139
-rw-r--r--mysql-test/main/order_by.test35
-rw-r--r--mysql-test/main/order_by_innodb.result2
-rw-r--r--mysql-test/main/order_by_innodb.test2
-rw-r--r--mysql-test/main/order_by_optimizer_innodb.result4
-rw-r--r--mysql-test/main/order_by_optimizer_innodb.test6
-rw-r--r--mysql-test/main/outfile_loaddata.test5
-rw-r--r--mysql-test/main/parser.result70
-rw-r--r--mysql-test/main/parser.test83
-rw-r--r--mysql-test/main/parser_not_embedded.test2
-rw-r--r--mysql-test/main/parser_stack.test4
-rw-r--r--mysql-test/main/partition.result8
-rw-r--r--mysql-test/main/partition.test2
-rw-r--r--mysql-test/main/partition_alter.test11
-rw-r--r--mysql-test/main/partition_exchange.test3
-rw-r--r--mysql-test/main/partition_explicit_prune.test3
-rw-r--r--mysql-test/main/partition_innodb.result5
-rw-r--r--mysql-test/main/partition_innodb.test10
-rw-r--r--mysql-test/main/partition_innodb_plugin.result8
-rw-r--r--mysql-test/main/partition_innodb_plugin.test14
-rw-r--r--mysql-test/main/partition_utf8-debug.result6
-rw-r--r--mysql-test/main/partition_utf8.result2
-rw-r--r--mysql-test/main/plugin.result2
-rw-r--r--mysql-test/main/plugin_auth.result12
-rw-r--r--mysql-test/main/plugin_auth.test3
-rw-r--r--mysql-test/main/plugin_auth_qa_1.test38
-rw-r--r--mysql-test/main/plugin_auth_qa_2.result18
-rw-r--r--mysql-test/main/plugin_auth_qa_2.test36
-rw-r--r--mysql-test/main/plugin_auth_qa_3.result4
-rw-r--r--mysql-test/main/plugin_auth_qa_3.test8
-rw-r--r--mysql-test/main/pool_of_threads.result8
-rw-r--r--mysql-test/main/ps.result24
-rw-r--r--mysql-test/main/ps.test29
-rw-r--r--mysql-test/main/ps_1general.result13
-rw-r--r--mysql-test/main/ps_1general.test13
-rw-r--r--mysql-test/main/ps_ddl.result8
-rw-r--r--mysql-test/main/ps_ddl.test10
-rw-r--r--mysql-test/main/ps_ddl1.test2
-rw-r--r--mysql-test/main/ps_missed_cmds.result547
-rw-r--r--mysql-test/main/ps_missed_cmds.test639
-rw-r--r--mysql-test/main/ps_missed_cmds_bin_prot.result227
-rw-r--r--mysql-test/main/ps_missed_cmds_bin_prot.test272
-rw-r--r--mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.result21
-rw-r--r--mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.test40
-rw-r--r--mysql-test/main/ps_missed_cmds_not_embedded.result61
-rw-r--r--mysql-test/main/ps_missed_cmds_not_embedded.test85
-rw-r--r--mysql-test/main/query_cache.result33
-rw-r--r--mysql-test/main/query_cache.test32
-rw-r--r--mysql-test/main/query_cache_ps_no_prot.result10
-rw-r--r--mysql-test/main/query_cache_ps_no_prot.test2
-rw-r--r--mysql-test/main/query_cache_ps_ps_prot.result10
-rw-r--r--mysql-test/main/query_cache_ps_ps_prot.test2
-rw-r--r--mysql-test/main/range.test3
-rw-r--r--mysql-test/main/range_innodb.result6
-rw-r--r--mysql-test/main/range_innodb.test6
-rw-r--r--mysql-test/main/range_vs_index_merge.result2
-rw-r--r--mysql-test/main/range_vs_index_merge.test7
-rw-r--r--mysql-test/main/range_vs_index_merge_innodb.result2
-rw-r--r--mysql-test/main/repair.result16
-rw-r--r--mysql-test/main/reset_connection.result4
-rw-r--r--mysql-test/main/reset_connection.test4
-rw-r--r--mysql-test/main/rowid_filter_innodb.result10
-rw-r--r--mysql-test/main/rowid_filter_innodb.test14
-rw-r--r--mysql-test/main/rowid_order_innodb.result3
-rw-r--r--mysql-test/main/rowid_order_innodb.test4
-rw-r--r--mysql-test/main/rownum.result986
-rw-r--r--mysql-test/main/rownum.test570
-rw-r--r--mysql-test/main/schema.result1
-rw-r--r--mysql-test/main/secure_file_priv_win.result22
-rw-r--r--mysql-test/main/secure_file_priv_win.test12
-rw-r--r--mysql-test/main/select,ps.rdiff12
-rw-r--r--mysql-test/main/select.result8
-rw-r--r--mysql-test/main/select.test8
-rw-r--r--mysql-test/main/select_jcl6,ps.rdiff12
-rw-r--r--mysql-test/main/select_jcl6.result8
-rw-r--r--mysql-test/main/select_pkeycache,ps.rdiff12
-rw-r--r--mysql-test/main/select_pkeycache.result8
-rw-r--r--mysql-test/main/selectivity.result4
-rw-r--r--mysql-test/main/selectivity_innodb.result7
-rw-r--r--mysql-test/main/selectivity_innodb.test3
-rw-r--r--mysql-test/main/selectivity_no_engine.result2
-rw-r--r--mysql-test/main/show_check.result68
-rw-r--r--mysql-test/main/show_check.test2
-rw-r--r--mysql-test/main/show_explain.result8
-rw-r--r--mysql-test/main/show_explain.test4
-rw-r--r--mysql-test/main/show_function_with_pad_char_to_full_length.result4
-rw-r--r--mysql-test/main/show_function_with_pad_char_to_full_length.test4
-rw-r--r--mysql-test/main/signal.result2
-rw-r--r--mysql-test/main/signal.test3
-rw-r--r--mysql-test/main/signal_demo1.test4
-rw-r--r--mysql-test/main/skip_grants.result2
-rw-r--r--mysql-test/main/skip_grants.test6
-rw-r--r--mysql-test/main/sp-anchor-row-type-cursor.test3
-rw-r--r--mysql-test/main/sp-anchor-row-type-table.test3
-rw-r--r--mysql-test/main/sp-anchor-type.result8
-rw-r--r--mysql-test/main/sp-anchor-type.test2
-rw-r--r--mysql-test/main/sp-big.test4
-rw-r--r--mysql-test/main/sp-cursor.result12
-rw-r--r--mysql-test/main/sp-cursor.test21
-rw-r--r--mysql-test/main/sp-dynamic.result16
-rw-r--r--mysql-test/main/sp-dynamic.test6
-rw-r--r--mysql-test/main/sp-error.result4
-rw-r--r--mysql-test/main/sp-error.test11
-rw-r--r--mysql-test/main/sp-row.result35
-rw-r--r--mysql-test/main/sp-row.test9
-rw-r--r--mysql-test/main/sp-security.result21
-rw-r--r--mysql-test/main/sp-security.test24
-rw-r--r--mysql-test/main/sp-ucs2.result4
-rw-r--r--mysql-test/main/sp-vars.result12
-rw-r--r--mysql-test/main/sp.result135
-rw-r--r--mysql-test/main/sp.test58
-rw-r--r--mysql-test/main/sp2.result8
-rw-r--r--mysql-test/main/sp2.test2
-rw-r--r--mysql-test/main/sp_gis.test4
-rw-r--r--mysql-test/main/sp_notembedded.test2
-rw-r--r--mysql-test/main/sp_trans.test2
-rw-r--r--mysql-test/main/sp_trans_log.test2
-rw-r--r--mysql-test/main/ssl-big.test4
-rw-r--r--mysql-test/main/ssl.result12
-rw-r--r--mysql-test/main/ssl.test2
-rw-r--r--mysql-test/main/ssl_compress.result8
-rw-r--r--mysql-test/main/ssl_crl.test2
-rw-r--r--mysql-test/main/stat_tables.result60
-rw-r--r--mysql-test/main/stat_tables_innodb.result60
-rw-r--r--mysql-test/main/stat_tables_par.inc4
-rw-r--r--mysql-test/main/stat_tables_par.result4
-rw-r--r--mysql-test/main/stat_tables_par_innodb.result4
-rw-r--r--mysql-test/main/status.result6
-rw-r--r--mysql-test/main/status.test2
-rw-r--r--mysql-test/main/strings.result30
-rw-r--r--mysql-test/main/strings.test38
-rw-r--r--mysql-test/main/subselect-crash_15755.result7
-rw-r--r--mysql-test/main/subselect-crash_15755.test6
-rw-r--r--mysql-test/main/subselect.test10
-rw-r--r--mysql-test/main/subselect3.result4
-rw-r--r--mysql-test/main/subselect3_jcl6.result4
-rw-r--r--mysql-test/main/subselect4.result2
-rw-r--r--mysql-test/main/subselect4.test2
-rw-r--r--mysql-test/main/subselect_exists2in_costmat.test2
-rw-r--r--mysql-test/main/subselect_innodb.result3
-rw-r--r--mysql-test/main/subselect_innodb.test4
-rw-r--r--mysql-test/main/subselect_mat_cost.test2
-rw-r--r--mysql-test/main/subselect_sj.result4
-rw-r--r--mysql-test/main/subselect_sj2.result10
-rw-r--r--mysql-test/main/subselect_sj2_jcl6.result14
-rw-r--r--mysql-test/main/subselect_sj2_mat.result22
-rw-r--r--mysql-test/main/subselect_sj_jcl6.result4
-rw-r--r--mysql-test/main/system_mysql_db.result130
-rw-r--r--mysql-test/main/system_mysql_db_fix40123.result132
-rw-r--r--mysql-test/main/system_mysql_db_fix40123.test2
-rw-r--r--mysql-test/main/system_mysql_db_fix50030.result130
-rw-r--r--mysql-test/main/system_mysql_db_fix50030.test2
-rw-r--r--mysql-test/main/system_mysql_db_fix50117.result130
-rw-r--r--mysql-test/main/system_mysql_db_fix50117.test2
-rw-r--r--mysql-test/main/table_value_constr.test2
-rw-r--r--mysql-test/main/tc_heuristic_recover.result4
-rw-r--r--mysql-test/main/tc_heuristic_recover.test4
-rw-r--r--mysql-test/main/temp_table.result12
-rw-r--r--mysql-test/main/temp_table.test14
-rw-r--r--mysql-test/main/temporal_literal.test2
-rw-r--r--mysql-test/main/trigger-compat.result40
-rw-r--r--mysql-test/main/trigger.result46
-rw-r--r--mysql-test/main/trigger.test51
-rw-r--r--mysql-test/main/type_bit_innodb.result4
-rw-r--r--mysql-test/main/type_bit_innodb.test9
-rw-r--r--mysql-test/main/type_blob.result4
-rw-r--r--mysql-test/main/type_blob.test4
-rw-r--r--mysql-test/main/type_enum.result2
-rw-r--r--mysql-test/main/type_hex_hybrid.result4
-rw-r--r--mysql-test/main/type_nchar.result14
-rw-r--r--mysql-test/main/type_newdecimal.test2
-rw-r--r--mysql-test/main/type_ranges.result30
-rw-r--r--mysql-test/main/type_year.test4
-rw-r--r--mysql-test/main/union.result16
-rw-r--r--mysql-test/main/union.test5
-rw-r--r--mysql-test/main/update_use_source.result2
-rw-r--r--mysql-test/main/update_use_source.test2
-rw-r--r--mysql-test/main/upgrade.result2
-rw-r--r--mysql-test/main/upgrade_MDEV-19650.result102
-rw-r--r--mysql-test/main/upgrade_MDEV-23102-1.result204
-rw-r--r--mysql-test/main/upgrade_MDEV-23102-2.result204
-rw-r--r--mysql-test/main/upgrade_geometrycolumn_procedure_definer.result102
-rw-r--r--mysql-test/main/upgrade_mdev_24363.result102
-rw-r--r--mysql-test/main/user_var.result9
-rw-r--r--mysql-test/main/user_var.test5
-rw-r--r--mysql-test/main/userstat.test2
-rw-r--r--mysql-test/main/variables.result10
-rw-r--r--mysql-test/main/view.result53
-rw-r--r--mysql-test/main/view.test63
-rw-r--r--mysql-test/main/view_grant.result15
-rw-r--r--mysql-test/main/view_grant.test23
-rw-r--r--mysql-test/main/win.result25
-rw-r--r--mysql-test/main/win.test28
-rw-r--r--mysql-test/main/win_big-mdev-11697.result2
-rw-r--r--mysql-test/main/win_big-mdev-11697.test2
-rw-r--r--mysql-test/main/xa.result3
-rw-r--r--mysql-test/main/xa.test3
-rw-r--r--mysql-test/main/xa_prepared_binlog_off.result11
493 files changed, 20587 insertions, 5395 deletions
diff --git a/mysql-test/main/1st.result b/mysql-test/main/1st.result
index c630be1d61c..f52a0218ced 100644
--- a/mysql-test/main/1st.result
+++ b/mysql-test/main/1st.result
@@ -4,6 +4,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
show tables in mysql;
Tables_in_mysql
diff --git a/mysql-test/main/almost_full.result b/mysql-test/main/almost_full.result
index b2d7092aa51..4b5c8417412 100644
--- a/mysql-test/main/almost_full.result
+++ b/mysql-test/main/almost_full.result
@@ -7,24 +7,24 @@ INSERT INTO t1 SET b=repeat('a',600);
ERROR HY000: The table 't1' is full
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check warning Datafile is almost full, 65448 of 65534 used
+test.t1 check warning Datafile is almost full, 65448 of 65534 used
test.t1 check status OK
UPDATE t1 SET b=repeat('a', 800) where a=10;
ERROR HY000: The table 't1' is full
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check warning Datafile is almost full, 65448 of 65534 used
+test.t1 check warning Datafile is almost full, 65448 of 65534 used
test.t1 check status OK
INSERT INTO t1 SET b=repeat('a',400);
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check warning Datafile is almost full, 65448 of 65534 used
+test.t1 check warning Datafile is almost full, 65448 of 65534 used
test.t1 check status OK
DELETE FROM t1 WHERE a=2 or a=6;
UPDATE t1 SET b=repeat('a', 600) where a=11;
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
-test.t1 check warning Datafile is almost full, 65448 of 65534 used
+test.t1 check warning Datafile is almost full, 65448 of 65534 used
test.t1 check status OK
drop table t1;
set global myisam_data_pointer_size=default;
diff --git a/mysql-test/main/alter_table.result b/mysql-test/main/alter_table.result
index 48769081726..21998597cad 100644
--- a/mysql-test/main/alter_table.result
+++ b/mysql-test/main/alter_table.result
@@ -124,44 +124,44 @@ key (n3, n4, n1, n2),
key (n4, n1, n2, n3) );
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 n1 1 n1 A 0 NULL NULL BTREE
-t1 1 n1_2 1 n1 A NULL NULL NULL BTREE disabled
-t1 1 n1_2 2 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n1_2 3 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n1_2 4 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 1 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 2 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 3 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 4 n1 A NULL NULL NULL BTREE disabled
-t1 1 n3 1 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n3 2 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n3 3 n1 A NULL NULL NULL BTREE disabled
-t1 1 n3 4 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled
-t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 n1 1 n1 A 0 NULL NULL BTREE NO
+t1 1 n1_2 1 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n1_2 2 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n1_2 3 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n1_2 4 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 1 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 2 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 3 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 4 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n3 1 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n3 2 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n3 3 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n3 4 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 n1 1 n1 A 10 NULL NULL BTREE
-t1 1 n1_2 1 n1 A 10 NULL NULL BTREE
-t1 1 n1_2 2 n2 A 10 NULL NULL YES BTREE
-t1 1 n1_2 3 n3 A 10 NULL NULL YES BTREE
-t1 1 n1_2 4 n4 A 10 NULL NULL YES BTREE
-t1 1 n2 1 n2 A 10 NULL NULL YES BTREE
-t1 1 n2 2 n3 A 10 NULL NULL YES BTREE
-t1 1 n2 3 n4 A 10 NULL NULL YES BTREE
-t1 1 n2 4 n1 A 10 NULL NULL BTREE
-t1 1 n3 1 n3 A 10 NULL NULL YES BTREE
-t1 1 n3 2 n4 A 10 NULL NULL YES BTREE
-t1 1 n3 3 n1 A 10 NULL NULL BTREE
-t1 1 n3 4 n2 A 10 NULL NULL YES BTREE
-t1 1 n4 1 n4 A 10 NULL NULL YES BTREE
-t1 1 n4 2 n1 A 10 NULL NULL BTREE
-t1 1 n4 3 n2 A 10 NULL NULL YES BTREE
-t1 1 n4 4 n3 A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 n1 1 n1 A 10 NULL NULL BTREE NO
+t1 1 n1_2 1 n1 A 10 NULL NULL BTREE NO
+t1 1 n1_2 2 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n1_2 3 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n1_2 4 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n2 1 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n2 2 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n2 3 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n2 4 n1 A 10 NULL NULL BTREE NO
+t1 1 n3 1 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n3 2 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n3 3 n1 A 10 NULL NULL BTREE NO
+t1 1 n3 4 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n4 1 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n4 2 n1 A 10 NULL NULL BTREE NO
+t1 1 n4 3 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n4 4 n3 A 10 NULL NULL YES BTREE NO
drop table t1;
create table t1 (i int unsigned not null auto_increment primary key);
alter table t1 rename t2;
@@ -174,19 +174,19 @@ drop table t1;
create table t1 (a int, b int);
alter table t1 add unique (a,b), add key (b);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A 3 NULL NULL YES BTREE
-t1 0 a 2 b A 300 NULL NULL YES BTREE
-t1 1 b 1 b A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A 3 NULL NULL YES BTREE NO
+t1 0 a 2 b A 300 NULL NULL YES BTREE NO
+t1 1 b 1 b A 100 NULL NULL YES BTREE NO
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status Table is already up to date
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A 3 NULL NULL YES BTREE
-t1 0 a 2 b A 300 NULL NULL YES BTREE
-t1 1 b 1 b A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A 3 NULL NULL YES BTREE NO
+t1 0 a 2 b A 300 NULL NULL YES BTREE NO
+t1 1 b 1 b A 100 NULL NULL YES BTREE NO
drop table t1;
CREATE TABLE t1 (i int(10), index(i) ) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
@@ -202,9 +202,9 @@ ALTER TABLE t1 DISABLE KEYS;
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
ALTER TABLE t1 ENABLE KEYS;
UNLOCK TABLES;
CHECK TABLES t1;
@@ -219,23 +219,23 @@ KEY (Host)
) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
ALTER TABLE t1 ENABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
-t1 1 Host 1 Host A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 2 NULL NULL BTREE NO
+t1 1 Host 1 Host A 1 NULL NULL BTREE NO
UNLOCK TABLES;
CHECK TABLES t1;
Table Op Msg_type Msg_text
@@ -257,10 +257,10 @@ KEY (Host)
LOCK TABLES t1 WRITE;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
DROP TABLE t1;
create table t1 (a int);
alter table t1 rename to ``;
@@ -442,38 +442,38 @@ drop table t1;
drop table if exists t1;
create table t1 (a int, key(a));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
"this used not to disable the index"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 add b char(10), disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 add c decimal(10,2), enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
"this however did"
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
desc t1;
Field Type Null Key Default Extra
a bigint(20) YES MUL NULL
@@ -482,83 +482,83 @@ c decimal(10,2) YES NULL
alter table t1 add d decimal(15,5);
"The key should still be disabled"
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
drop table t1;
"Now will test with one unique index"
create table t1(a int, b char(10), unique(a));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"Unique index, no change"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
"Change the type implying data copy"
"Unique index, no change"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a bigint;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
drop table t1;
"Now will test with one unique and one non-unique index"
create table t1(a int, b char(10), unique(a), key(b));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"The non-unique index will be disabled"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
"Change the type implying data copy"
"The non-unique index will be disabled"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
"Change again the type, but leave the indexes as_is"
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
"Try the same. When data is no copied on similar tables, this is noop"
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
drop table t1;
create database mysqltest;
create table t1 (c1 int);
@@ -594,12 +594,12 @@ DROP TABLE IF EXISTS bug24219;
DROP TABLE IF EXISTS bug24219_2;
CREATE TABLE bug24219 (a INT, INDEX(a));
SHOW INDEX FROM bug24219;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-bug24219 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+bug24219 1 a 1 a A NULL NULL NULL YES BTREE NO
ALTER TABLE bug24219 RENAME TO bug24219_2, DISABLE KEYS;
SHOW INDEX FROM bug24219_2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-bug24219_2 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+bug24219_2 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
DROP TABLE bug24219_2;
drop table if exists table_24562;
create table table_24562(
@@ -900,7 +900,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` text DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
create table t1 (a mediumtext character set latin1);
alter table t1 convert to character set utf8;
@@ -908,7 +908,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` longtext DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
End of 5.0 tests
drop table if exists t1, t2, t3;
@@ -1042,8 +1042,8 @@ Field Type Null Key Default Extra
int_field int(10) unsigned NO MUL NULL
char_field char(10) YES NULL
SHOW INDEXES FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 int_field 1 int_field A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 int_field 1 int_field A NULL NULL NULL BTREE NO
INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet");
"Non-copy data change - new frm, but old data and index files"
ALTER TABLE t1
@@ -1371,7 +1371,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`consultant_id` int(11) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
CREATE TABLE t1 (
`a` int(11) DEFAULT NULL
@@ -1383,7 +1383,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`consultant_id` int(11) NOT NULL DEFAULT 2
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
CREATE TABLE t1 (
`a` int(11) DEFAULT NULL
@@ -1395,7 +1395,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`consultant_id` int(11) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
CREATE TABLE t1 (
`a` int(11) DEFAULT NULL
@@ -1408,7 +1408,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`consultant_id` bigint(20) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
#
# BUG#27788685: NO WARNING WHEN TRUNCATING A STRING WITH DATA LOSS
@@ -2228,7 +2228,7 @@ t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a` int(11) NOT NULL,
`b` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
#
# MDEV-15308
diff --git a/mysql-test/main/analyze.result b/mysql-test/main/analyze.result
index dd785abcd42..a1332abd177 100644
--- a/mysql-test/main/analyze.result
+++ b/mysql-test/main/analyze.result
@@ -60,8 +60,8 @@ analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
drop table t1;
End of 4.1 tests
create table t1(a int);
diff --git a/mysql-test/main/backup_lock.result b/mysql-test/main/backup_lock.result
index 96503814d00..16806148c67 100644
--- a/mysql-test/main/backup_lock.result
+++ b/mysql-test/main/backup_lock.result
@@ -2,23 +2,28 @@
# Testing which locks we get from all stages
#
BACKUP STAGE START;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_START Backup lock
BACKUP STAGE FLUSH;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_FLUSH Backup lock
BACKUP STAGE BLOCK_DDL;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_WAIT_DDL Backup lock
BACKUP STAGE BLOCK_COMMIT;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_WAIT_COMMIT Backup lock
BACKUP STAGE END;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
#
# testing BACKUP STAGE LOCK's
@@ -30,14 +35,17 @@ connection default;
# testing if BACKUP STAGE FLUSH causes deadlocks with ALTER TABLE
#
create table t1 (a int) engine=innodb;
+connection con2;
+backup stage start;
+connection default;
start transaction;
insert into t1 values (1);
connection con1;
alter table t1 add column (j int), algorithm copy;
connection con2;
-backup stage start;
backup stage flush;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_DDL Backup lock
MDL_BACKUP_FLUSH Backup lock
@@ -73,7 +81,8 @@ alter table t1 add column (j int);
connection con2;
backup stage start;
backup stage flush;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_ALTER_COPY Backup lock
MDL_BACKUP_FLUSH Backup lock
@@ -108,7 +117,8 @@ backup stage flush;
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
backup stage block_ddl;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_WAIT_DDL Backup lock
MDL_SHARED_WRITE Table metadata lock test t1
@@ -128,7 +138,8 @@ connection con1;
DROP TABLE t1;
connection con2;
connection con2;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_BACKUP_WAIT_DDL Backup lock
SELECT * FROM t1;
@@ -175,6 +186,23 @@ select * from t1;
a
1
drop table t1;
+#
+# Check if BACKUP STAGE BLOCK_DDL blocks create view
+#
+create table t1 (a int) engine=innodb;
+connection con1;
+backup stage start;
+backup stage block_ddl;
+connection default;
+create view v1 as select * from t1;;
+connection con1;
+select count(*) = 1 from information_schema.processlist;
+count(*) = 1
+0
+backup stage end;
+connection default;
+drop table t1;
+drop view v1;
disconnect con1;
disconnect con2;
#
diff --git a/mysql-test/main/backup_lock.test b/mysql-test/main/backup_lock.test
index a70abb727bb..5453e5b0e7d 100644
--- a/mysql-test/main/backup_lock.test
+++ b/mysql-test/main/backup_lock.test
@@ -12,16 +12,19 @@
--echo # Testing which locks we get from all stages
--echo #
+let $mdl= LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info
+WHERE TABLE_NAME NOT LIKE 'innodb_%_stats';
+
BACKUP STAGE START;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
BACKUP STAGE FLUSH;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
BACKUP STAGE BLOCK_DDL;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
BACKUP STAGE BLOCK_COMMIT;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
BACKUP STAGE END;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
--echo #
--echo # testing BACKUP STAGE LOCK's
@@ -38,6 +41,10 @@ connection default;
create table t1 (a int) engine=innodb;
+connection con2;
+backup stage start;
+connection default;
+
start transaction;
# Acquires MDL lock
insert into t1 values (1);
@@ -51,9 +58,8 @@ let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for table metadata lock";
--source include/wait_condition.inc
-backup stage start;
backup stage flush;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
#
# Do first test with max_statement_time, other tests later are done with
# lock_wait_timeout. This is mostly to ensure that both methods works
@@ -102,7 +108,7 @@ let $wait_condition=
--source include/wait_condition.inc
backup stage start;
backup stage flush;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
backup stage block_ddl;
backup stage block_commit;
connection default;
@@ -145,7 +151,7 @@ let $wait_condition=
SET STATEMENT lock_wait_timeout=0 FOR SELECT * FROM t1;
backup stage block_ddl;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
backup stage end;
connection default;
@@ -169,7 +175,7 @@ let $wait_condition=
where state = "Waiting for backup lock";
--source include/wait_condition.inc
connection con2;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+eval SELECT $mdl;
# Check that select's are not blocked
SELECT * FROM t1;
connection default;
@@ -229,6 +235,28 @@ connection default;
select * from t1;
drop table t1;
+--echo #
+--echo # Check if BACKUP STAGE BLOCK_DDL blocks create view
+--echo #
+
+create table t1 (a int) engine=innodb;
+connection con1;
+backup stage start;
+backup stage block_ddl;
+connection default;
+--send create view v1 as select * from t1;
+connection con1;
+--sleep 2
+select count(*) = 1 from information_schema.processlist;
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "Waiting for backup lock";
+backup stage end;
+connection default;
+--reap # create
+drop table t1;
+drop view v1;
+
#
# End of tests using con1 and con2
#
diff --git a/mysql-test/main/backup_lock_debug.result b/mysql-test/main/backup_lock_debug.result
index 7c7b05901a9..229c32a85f4 100644
--- a/mysql-test/main/backup_lock_debug.result
+++ b/mysql-test/main/backup_lock_debug.result
@@ -33,11 +33,13 @@ SET DEBUG_SYNC= 'RESET';
#
CREATE DATABASE test2;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
+connect con1,localhost,root,,;
+BACKUP STAGE START;
+connection default;
SET DEBUG_SYNC='alter_opened_table SIGNAL ready WAIT_FOR go';
ALTER TABLE t1 RENAME TO test2.t1;
-connect con1,localhost,root,,;
+connection con1;
SET DEBUG_SYNC='now WAIT_FOR ready';
-BACKUP STAGE START;
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL ready1';
BACKUP STAGE BLOCK_DDL;
connect con2,localhost,root,,;
diff --git a/mysql-test/main/backup_lock_debug.test b/mysql-test/main/backup_lock_debug.test
index 80e7cf9e181..37d70b04e0d 100644
--- a/mysql-test/main/backup_lock_debug.test
+++ b/mysql-test/main/backup_lock_debug.test
@@ -49,12 +49,15 @@ SET DEBUG_SYNC= 'RESET';
CREATE DATABASE test2;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
+connect (con1,localhost,root,,);
+BACKUP STAGE START;
+
+--connection default
SET DEBUG_SYNC='alter_opened_table SIGNAL ready WAIT_FOR go';
send ALTER TABLE t1 RENAME TO test2.t1;
-connect (con1,localhost,root,,);
+--connection con1
SET DEBUG_SYNC='now WAIT_FOR ready';
-BACKUP STAGE START;
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL ready1';
send BACKUP STAGE BLOCK_DDL;
diff --git a/mysql-test/main/backup_locks.result b/mysql-test/main/backup_locks.result
index 2942231678e..31aed5f3cc8 100644
--- a/mysql-test/main/backup_locks.result
+++ b/mysql-test/main/backup_locks.result
@@ -32,7 +32,7 @@ a
connection con1;
drop table t1;
connection default;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info where table_name not like "innodb_%";
LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
MDL_SHARED_HIGH_PRIO Table metadata lock test t1
MDL_INTENTION_EXCLUSIVE Schema metadata lock test
diff --git a/mysql-test/main/backup_locks.test b/mysql-test/main/backup_locks.test
index eb1c6536a4f..2c2c226f847 100644
--- a/mysql-test/main/backup_locks.test
+++ b/mysql-test/main/backup_locks.test
@@ -40,7 +40,7 @@ let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = "Waiting for table metadata lock";
--source include/wait_condition.inc
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info where table_name not like "innodb_%";
--error ER_LOCK_DEADLOCK
select * from t1;
backup unlock;
diff --git a/mysql-test/main/backup_log.inc b/mysql-test/main/backup_log.inc
new file mode 100644
index 00000000000..f553a3b9527
--- /dev/null
+++ b/mysql-test/main/backup_log.inc
@@ -0,0 +1,155 @@
+# This file is used for common DDL log test for both partiotioned
+# and non-partitioned tables.
+# Parameters:
+# $part_int - partition definition for int field, must be empty for
+# non-partitioned testing
+# $part_date - partition definition for date field, must be empty for
+# non-partitioned testing
+
+--echo #
+--echo # Testing with normal tables
+--echo #
+
+eval create table t1 (a int) engine=myisam $part_int;
+insert into t1 values (1),(2);
+alter table t1 add column b int;
+alter table t1 rename as t2;
+rename table t2 to t1;
+truncate table t1;
+repair table t1;
+optimize table t1;
+drop table t1;
+
+eval create table t1_innodb (a int) engine=innodb $part_int;
+insert into t1_innodb values (1),(2);
+alter table t1_innodb add column b int;
+alter table t1_innodb rename as t2_innodb;
+rename table t2_innodb to t1_innodb;
+truncate table t1_innodb;
+repair table t1_innodb;
+optimize table t1_innodb;
+drop table t1_innodb;
+
+--echo #
+--echo # Testing with temporary tables (should not be logged)
+--echo #
+
+create temporary table tmp_t10 (a int) engine=myisam;
+alter table tmp_t10 add column b int;
+alter table tmp_t10 rename as tmp_t11;
+rename table tmp_t11 to tmp_t10;
+truncate table tmp_t10;
+drop table tmp_t10;
+
+--echo #
+--echo # Testing with mix of normal and temporary tables
+--echo #
+
+create temporary table tmp_t20 (a int);
+eval create table t20 (a int) $part_int;
+drop table tmp_t20,t20;
+
+create temporary table tmp_t21 (a int);
+eval create table t21 (a int) $part_int;
+drop temporary table if exists tmp_t21,t21;
+drop table if exists tmp_t21,t21;
+
+--echo #
+--echo # Testing create select
+--echo #
+
+eval create table t30 (a int) $part_int;
+insert into t30 values (1),(1);
+eval create table t31 (a int primary key) $part_int select * from t30 limit 1;
+create or replace table t31 select * from t30 limit 1;
+create or replace temporary table t30_dup select * from t30 limit 1;
+--error ER_DUP_ENTRY
+eval create or replace table t31 (a int primary key) $part_int select * from t30;
+eval create table t32 (a int) $part_int;
+drop table if exists t30,t31,t32,tmp_t30;
+
+--echo #
+--echo # Testing create LIKE
+--echo #
+eval create table t40 (a int) engine=myisam $part_int;
+eval create table t41 (a int, b int) engine=innodb $part_int;
+create table t42 like t40;
+if (!$part_int) {
+create temporary table t43_tmp like t40;
+}
+create or replace table t42 like t41;
+show create table t42;
+drop table t40, t41, t42;
+
+--echo #
+--echo # Testing rename
+--echo #
+
+eval create table t50 (a int) $part_int;
+eval create table t51 (a int, b int) $part_int;
+rename table t50 to t52, t51 to t53;
+rename table t52 to tmp, t53 to t52, tmp to t53;
+drop table t52,t53;
+
+--echo #
+--echo # Testing enable/disable keys
+--echo #
+
+eval CREATE TABLE t60 (a int(10), index(a) ) ENGINE=Aria $part_int;
+INSERT INTO t60 VALUES(1),(2),(3);
+ALTER TABLE t60 DISABLE KEYS;
+INSERT INTO t60 VALUES(4),(5),(6);
+ALTER TABLE t60 ENABLE KEYS;
+DROP TABLE t60;
+
+CREATE TEMPORARY TABLE t61 (i int(10), index(i) ) ENGINE=Aria;
+INSERT INTO t61 VALUES(1),(2),(3);
+ALTER TABLE t61 DISABLE KEYS;
+DROP TABLE t61;
+
+--echo #
+--echo # Testing load data
+--echo #
+
+eval create table t70 (a date, b date, c date not null, d date) engine=aria $part_date;
+--disable_warnings
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+truncate table t70;
+lock table t70 write;
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+unlock tables;
+--enable_warnings
+
+eval create table t71 (a date, b date, c date not null, d date) engine=aria $part_date;
+lock tables t71 write, t70 read;
+insert into t71 select * from t70;
+unlock tables;
+drop table t70,t71;
+
+--echo #
+--echo # Testing strange table names
+--echo #
+
+eval create table `t 1` (a int) $part_int;
+drop table `t 1`;
+
+--echo #
+--echo # Testing views and triggers
+--echo #
+
+eval create table t80 (a int, b int) engine=myisam $part_int;
+create view v1 as select * from t80;
+create trigger trg before insert on t80 for each row set @b:=1;
+drop trigger trg;
+drop view v1;
+drop table t80;
+
+--echo #
+--echo # Testing alter to a new storage engine
+--echo #
+
+eval create table t85 (a int primary key, b int) engine=myisam $part_int;
+alter table t85 engine=innodb;
+drop table t85;
diff --git a/mysql-test/main/backup_log.result b/mysql-test/main/backup_log.result
new file mode 100644
index 00000000000..cc8d098825d
--- /dev/null
+++ b/mysql-test/main/backup_log.result
@@ -0,0 +1,241 @@
+CREATE TABLE t_exists (a INT);
+CREATE TABLE t_exists_template (a INT);
+connect con1,localhost,root,,;
+BACKUP STAGE START;
+connection default;
+#
+# Testing with normal tables
+#
+create table t1 (a int) engine=myisam ;
+insert into t1 values (1),(2);
+alter table t1 add column b int;
+alter table t1 rename as t2;
+rename table t2 to t1;
+truncate table t1;
+repair table t1;
+Table Op Msg_type Msg_text
+test.t1 repair status OK
+optimize table t1;
+Table Op Msg_type Msg_text
+test.t1 optimize status OK
+drop table t1;
+create table t1_innodb (a int) engine=innodb ;
+insert into t1_innodb values (1),(2);
+alter table t1_innodb add column b int;
+alter table t1_innodb rename as t2_innodb;
+rename table t2_innodb to t1_innodb;
+truncate table t1_innodb;
+repair table t1_innodb;
+Table Op Msg_type Msg_text
+test.t1_innodb repair note The storage engine for the table doesn't support repair
+optimize table t1_innodb;
+Table Op Msg_type Msg_text
+test.t1_innodb optimize note Table does not support optimize, doing recreate + analyze instead
+test.t1_innodb optimize status OK
+drop table t1_innodb;
+#
+# Testing with temporary tables (should not be logged)
+#
+create temporary table tmp_t10 (a int) engine=myisam;
+alter table tmp_t10 add column b int;
+alter table tmp_t10 rename as tmp_t11;
+rename table tmp_t11 to tmp_t10;
+truncate table tmp_t10;
+drop table tmp_t10;
+#
+# Testing with mix of normal and temporary tables
+#
+create temporary table tmp_t20 (a int);
+create table t20 (a int) ;
+drop table tmp_t20,t20;
+create temporary table tmp_t21 (a int);
+create table t21 (a int) ;
+drop temporary table if exists tmp_t21,t21;
+Warnings:
+Note 1051 Unknown table 'test.t21'
+drop table if exists tmp_t21,t21;
+Warnings:
+Note 1051 Unknown table 'test.tmp_t21'
+#
+# Testing create select
+#
+create table t30 (a int) ;
+insert into t30 values (1),(1);
+create table t31 (a int primary key) select * from t30 limit 1;
+create or replace table t31 select * from t30 limit 1;
+create or replace temporary table t30_dup select * from t30 limit 1;
+create or replace table t31 (a int primary key) select * from t30;
+ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
+create table t32 (a int) ;
+drop table if exists t30,t31,t32,tmp_t30;
+Warnings:
+Note 1051 Unknown table 'test.t31,test.tmp_t30'
+#
+# Testing create LIKE
+#
+create table t40 (a int) engine=myisam ;
+create table t41 (a int, b int) engine=innodb ;
+create table t42 like t40;
+create temporary table t43_tmp like t40;
+create or replace table t42 like t41;
+show create table t42;
+Table Create Table
+t42 CREATE TABLE `t42` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+drop table t40, t41, t42;
+#
+# Testing rename
+#
+create table t50 (a int) ;
+create table t51 (a int, b int) ;
+rename table t50 to t52, t51 to t53;
+rename table t52 to tmp, t53 to t52, tmp to t53;
+drop table t52,t53;
+#
+# Testing enable/disable keys
+#
+CREATE TABLE t60 (a int(10), index(a) ) ENGINE=Aria ;
+INSERT INTO t60 VALUES(1),(2),(3);
+ALTER TABLE t60 DISABLE KEYS;
+INSERT INTO t60 VALUES(4),(5),(6);
+ALTER TABLE t60 ENABLE KEYS;
+DROP TABLE t60;
+CREATE TEMPORARY TABLE t61 (i int(10), index(i) ) ENGINE=Aria;
+INSERT INTO t61 VALUES(1),(2),(3);
+ALTER TABLE t61 DISABLE KEYS;
+DROP TABLE t61;
+#
+# Testing load data
+#
+create table t70 (a date, b date, c date not null, d date) engine=aria ;
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+truncate table t70;
+lock table t70 write;
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+load data infile '../../std_data/loaddata1.dat' ignore into table t70 fields terminated by ',';
+unlock tables;
+create table t71 (a date, b date, c date not null, d date) engine=aria ;
+lock tables t71 write, t70 read;
+insert into t71 select * from t70;
+unlock tables;
+drop table t70,t71;
+#
+# Testing strange table names
+#
+create table `t 1` (a int) ;
+drop table `t 1`;
+#
+# Testing views and triggers
+#
+create table t80 (a int, b int) engine=myisam ;
+create view v1 as select * from t80;
+create trigger trg before insert on t80 for each row set @b:=1;
+drop trigger trg;
+drop view v1;
+drop table t80;
+#
+# Testing alter to a new storage engine
+#
+create table t85 (a int primary key, b int) engine=myisam ;
+alter table t85 engine=innodb;
+drop table t85;
+#
+# Testing create/drop/alter database
+#
+create database mysqltest;
+create table mysqltest.t90 (a int primary key, b int) engine=myisam;
+create table mysqltest.t91 (a int primary key, b int) engine=innodb;
+alter database mysqltest character set utf8;
+drop database mysqltest;
+#
+# MENT-222 bug testing
+#
+CREATE TABLE IF NOT EXISTS t_exists LIKE t_exists_template;
+Warnings:
+Note 1050 Table 't_exists' already exists
+#
+# Reading backup ddl log file
+#
+CREATE,MyISAM,0,test,t1,id: 1,,0,,,
+ALTER,MyISAM,0,test,t1,id: 1,MyISAM,0,test,t1,id: 2
+RENAME,MyISAM,0,test,t1,id: 2,MyISAM,0,test,t2,id: 2
+RENAME,MyISAM,0,test,t2,id: 2,MyISAM,0,test,t1,id: 2
+repair,MyISAM,0,test,t1,id: 2,,0,,,
+optimize,MyISAM,0,test,t1,id: 2,,0,,,
+DROP,MyISAM,0,test,t1,id: 2,,0,,,
+CREATE,InnoDB,0,test,t1_innodb,id: 3,,0,,,
+ALTER,InnoDB,0,test,t1_innodb,id: 3,InnoDB,0,test,t1_innodb,id: 4
+RENAME,InnoDB,0,test,t1_innodb,id: 4,InnoDB,0,test,t2_innodb,id: 4
+RENAME,InnoDB,0,test,t2_innodb,id: 4,InnoDB,0,test,t1_innodb,id: 4
+TRUNCATE,InnoDB,0,test,t1_innodb,id: 4,,0,,,
+repair,InnoDB,0,test,t1_innodb,id: 4,,0,,,
+ALTER,InnoDB,0,test,t1_innodb,id: 4,InnoDB,0,test,t1_innodb,id: 5
+DROP,InnoDB,0,test,t1_innodb,id: 5,,0,,,
+CREATE,MyISAM,0,test,t20,id: 6,,0,,,
+DROP,MyISAM,0,test,t20,id: 6,,0,,,
+CREATE,MyISAM,0,test,t21,id: 7,,0,,,
+DROP,MyISAM,0,test,t21,id: 7,,0,,,
+CREATE,MyISAM,0,test,t30,id: 8,,0,,,
+CREATE,MyISAM,0,test,t31,id: 9,,0,,,
+DROP,MyISAM,0,test,t31,id: 9,,0,,,
+CREATE,MyISAM,0,test,t31,id: 10,,0,,,
+DROP,MyISAM,0,test,t31,id: 10,,0,,,
+DROP_AFTER_CREATE,MyISAM,0,test,t31,id: 11,,0,,,
+CREATE,MyISAM,0,test,t32,id: 12,,0,,,
+DROP,MyISAM,0,test,t30,id: 8,,0,,,
+DROP,MyISAM,0,test,t32,id: 12,,0,,,
+CREATE,MyISAM,0,test,t40,id: 13,,0,,,
+CREATE,InnoDB,0,test,t41,id: 14,,0,,,
+CREATE,MyISAM,0,test,t42,id: 15,,0,,,
+DROP,MyISAM,0,test,t42,id: 15,,0,,,
+CREATE,InnoDB,0,test,t42,id: 16,,0,,,
+DROP,MyISAM,0,test,t40,id: 13,,0,,,
+DROP,InnoDB,0,test,t41,id: 14,,0,,,
+DROP,InnoDB,0,test,t42,id: 16,,0,,,
+CREATE,MyISAM,0,test,t50,id: 17,,0,,,
+CREATE,MyISAM,0,test,t51,id: 18,,0,,,
+RENAME,MyISAM,0,test,t50,id: 17,MyISAM,0,test,t52,id: 17
+RENAME,MyISAM,0,test,t51,id: 18,MyISAM,0,test,t53,id: 18
+RENAME,MyISAM,0,test,t52,id: 17,MyISAM,0,test,tmp,id: 17
+RENAME,MyISAM,0,test,t53,id: 18,MyISAM,0,test,t52,id: 18
+RENAME,MyISAM,0,test,tmp,id: 17,MyISAM,0,test,t53,id: 17
+DROP,MyISAM,0,test,t52,id: 18,,0,,,
+DROP,MyISAM,0,test,t53,id: 17,,0,,,
+CREATE,Aria,0,test,t60,id: 19,,0,,,
+CHANGE_INDEX,Aria,0,test,t60,id: 19,,0,,,
+CHANGE_INDEX,Aria,0,test,t60,id: 19,,0,,,
+DROP,Aria,0,test,t60,id: 19,,0,,,
+CREATE,Aria,0,test,t70,id: 20,,0,,,
+BULK_INSERT,Aria,0,test,t70,id: 20,,0,,,
+BULK_INSERT,Aria,0,test,t70,id: 20,,0,,,
+CREATE,Aria,0,test,t71,id: 21,,0,,,
+BULK_INSERT,Aria,0,test,t71,id: 21,,0,,,
+DROP,Aria,0,test,t70,id: 20,,0,,,
+DROP,Aria,0,test,t71,id: 21,,0,,,
+CREATE,MyISAM,0,test,t@00201,id: 22,,0,,,
+DROP,MyISAM,0,test,t@00201,id: 22,,0,,,
+CREATE,MyISAM,0,test,t80,id: 23,,0,,,
+CREATE,VIEW,0,test,v1,,,0,,,
+CREATE,TRIGGER,0,test,trg,,,0,,,
+DROP,TRIGGER,0,test,trg,,,0,,,
+DROP,VIEW,0,test,v1,,,0,,,
+DROP,MyISAM,0,test,t80,id: 23,,0,,,
+CREATE,MyISAM,0,test,t85,id: 24,,0,,,
+ALTER,MyISAM,0,test,t85,id: 24,InnoDB,0,test,t85,id: 25
+DROP,InnoDB,0,test,t85,id: 25,,0,,,
+CREATE,DATABASE,0,mysqltest,,,,0,,,
+CREATE,MyISAM,0,mysqltest,t90,id: 26,,0,,,
+CREATE,InnoDB,0,mysqltest,t91,id: 27,,0,,,
+ALTER,DATABASE,0,mysqltest,,,,0,,,
+DROP,MyISAM,0,mysqltest,t90,id: 26,,0,,,
+DROP,InnoDB,0,mysqltest,t91,id: 27,,0,,,
+DROP,DATABASE,0,mysqltest,,,,0,,,
+#
+# Cleanup
+#
+DROP TABLE t_exists;
+DROP TABLE t_exists_template;
+disconnect con1;
diff --git a/mysql-test/main/backup_log.test b/mysql-test/main/backup_log.test
new file mode 100644
index 00000000000..ee34484e92b
--- /dev/null
+++ b/mysql-test/main/backup_log.test
@@ -0,0 +1,39 @@
+# Testing of logging of ddl's under backup stages
+
+--source include/have_innodb.inc
+--source include/not_embedded.inc
+
+CREATE TABLE t_exists (a INT);
+CREATE TABLE t_exists_template (a INT);
+
+connect (con1,localhost,root,,);
+BACKUP STAGE START;
+connection default;
+
+--let $part_int=
+--let $part_date=
+--source backup_log.inc
+
+--echo #
+--echo # Testing create/drop/alter database
+--echo #
+
+create database mysqltest;
+create table mysqltest.t90 (a int primary key, b int) engine=myisam;
+create table mysqltest.t91 (a int primary key, b int) engine=innodb;
+alter database mysqltest character set utf8;
+drop database mysqltest;
+
+--echo #
+--echo # MENT-222 bug testing
+--echo #
+CREATE TABLE IF NOT EXISTS t_exists LIKE t_exists_template;
+
+--source include/print_ddl_log.inc
+
+--echo #
+--echo # Cleanup
+--echo #
+DROP TABLE t_exists;
+DROP TABLE t_exists_template;
+disconnect con1;
diff --git a/mysql-test/main/backup_stages.result b/mysql-test/main/backup_stages.result
index 4704a4b6bd1..823e5d7e462 100644
--- a/mysql-test/main/backup_stages.result
+++ b/mysql-test/main/backup_stages.result
@@ -17,12 +17,12 @@ FROM information_schema.processlist WHERE id = @con1_id;
ID USER COMMAND STATE INFO STAGE MAX_STAGE INFO_BINARY
<con1_id> root Query Waiting for backup lock BACKUP STAGE START 0 0 BACKUP STAGE START
BACKUP STAGE END;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
-LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
-MDL_BACKUP_START Backup lock
connection con1;
# The connection default has removed the backup lock.
# And so the current connection con1 can reap for its BACKUP STAGE START
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
+MDL_BACKUP_START Backup lock
connect con2,localhost,root,,;
# The connection con2 cannot continue the work of con1 by setting the
# next BACKUP STAGE FLUSH.
diff --git a/mysql-test/main/backup_stages.test b/mysql-test/main/backup_stages.test
index e8cc5f7a7b9..77d410b6caf 100644
--- a/mysql-test/main/backup_stages.test
+++ b/mysql-test/main/backup_stages.test
@@ -50,13 +50,14 @@ FROM information_schema.processlist WHERE id = @con1_id;
# con1 uses @@global.lock_wait_timeout
BACKUP STAGE END;
-SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
--connection con1
--echo # The connection default has removed the backup lock.
--echo # And so the current connection con1 can reap for its BACKUP STAGE START
--reap
+SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
+
# con2, root high privileged user
--connect(con2,localhost,root,,)
let $con2_id= `SELECT CONNECTION_ID()`;
diff --git a/mysql-test/main/binary.test b/mysql-test/main/binary.test
index 1cc6ae07675..ebb3d7ba3c8 100644
--- a/mysql-test/main/binary.test
+++ b/mysql-test/main/binary.test
@@ -18,9 +18,12 @@ select min(name),min(concat("*",name,"*")),max(name),max(concat("*",name,"*")) f
select * from t2 order by name;
select concat("*",name,"*") from t2 order by 1;
select min(name),min(concat("*",name,"*")),max(name),max(concat("*",name,"*")) from t2;
+#check after fix MDEV-29601
+--disable_service_connection
select name from t1 where name between 'Ä' and 'Ö';
select name from t2 where name between 'ä' and 'ö';
select name from t2 where name between 'Ä' and 'Ö';
+--enable_service_connection
drop table t1,t2;
diff --git a/mysql-test/main/bind_address_resolution.opt b/mysql-test/main/bind_address_resolution.opt
new file mode 100644
index 00000000000..b0b906a7091
--- /dev/null
+++ b/mysql-test/main/bind_address_resolution.opt
@@ -0,0 +1 @@
+--bind-address=localhost
diff --git a/mysql-test/main/bind_address_resolution.result b/mysql-test/main/bind_address_resolution.result
new file mode 100644
index 00000000000..d054c333902
--- /dev/null
+++ b/mysql-test/main/bind_address_resolution.result
@@ -0,0 +1,11 @@
+CREATE TABLE t (a TEXT);
+connect con1,localhost,root,,test;
+SELECT * FROM t;
+a
+connect con2,127.0.0.1,root,,test;
+SELECT * FROM t;
+a
+connection default;
+DROP TABLE t;
+disconnect con1;
+disconnect con2;
diff --git a/mysql-test/main/bind_address_resolution.test b/mysql-test/main/bind_address_resolution.test
new file mode 100644
index 00000000000..ab4d8e8e463
--- /dev/null
+++ b/mysql-test/main/bind_address_resolution.test
@@ -0,0 +1,22 @@
+--source include/check_ipv6.inc
+--source include/not_embedded.inc
+
+# The server is started with --bind-address=localhost, and should
+# listen on all addresses 'localhost' resolves to. With at least
+# 127.0.0.1 and ::1 amongst them.
+
+CREATE TABLE t (a TEXT);
+--connect(con1,localhost,root,,test)
+SELECT * FROM t;
+--connect(con2,127.0.0.1,root,,test)
+SELECT * FROM t;
+# Temporary disable.
+# Some cloud-init services don't resolve localhost->::1
+# bb - kvm-asan, kvm-deb-focal-amd64, kvm-deb-groovy-amd64
+#--connect(con3,::1,root,,test)
+#SELECT * FROM t;
+--connection default
+DROP TABLE t;
+--disconnect con1
+--disconnect con2
+#--disconnect con3
diff --git a/mysql-test/main/bootstrap.result b/mysql-test/main/bootstrap.result
index 6801791221e..fd9b4726cb6 100644
--- a/mysql-test/main/bootstrap.result
+++ b/mysql-test/main/bootstrap.result
@@ -34,4 +34,10 @@ name dl
EXAMPLE ha_example.so
truncate table mysql.plugin;
# Kill the server
+#
+# MDEV-28782 mariadb-tzinfo-to-sql to work in bootstrap mode
+#
+#
+# End of 10.6 tests
+#
# restart
diff --git a/mysql-test/main/bootstrap.test b/mysql-test/main/bootstrap.test
index 1c8dafd8f28..f7bddf23408 100644
--- a/mysql-test/main/bootstrap.test
+++ b/mysql-test/main/bootstrap.test
@@ -133,4 +133,30 @@ EOF
--exec $MYSQLD_BOOTSTRAP_CMD --default-time-zone=Europe/Moscow < $MYSQLTEST_VARDIR/tmp/bootstrap_9969.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
--remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_9969.sql
+--echo #
+--echo # MDEV-28782 mariadb-tzinfo-to-sql to work in bootstrap mode
+--echo #
+
+--write_file $MYSQLTEST_VARDIR/tmp/tz.sql
+use test;
+
+create table time_zone like mysql.time_zone;
+create table time_zone_leap_second like mysql.time_zone_leap_second;
+create table time_zone_name like mysql.time_zone_name;
+create table time_zone_transition like mysql.time_zone_transition;
+create table time_zone_transition_type like mysql.time_zone_transition_type;
+
+EOF
+--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog std_data/zoneinfo/GMT GMT 2>/dev/null >> $MYSQLTEST_VARDIR/tmp/tz.sql
+--append_file $MYSQLTEST_VARDIR/tmp/tz.sql
+DROP TABLE time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type;
+EOF
+--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/tz.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
+--remove_file $MYSQLTEST_VARDIR/tmp/tz.sql
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
+
+# restore
--source include/start_mysqld.inc
diff --git a/mysql-test/main/bug12427262.test b/mysql-test/main/bug12427262.test
index aca37a651c4..3a5642516a8 100644
--- a/mysql-test/main/bug12427262.test
+++ b/mysql-test/main/bug12427262.test
@@ -21,6 +21,7 @@ create table t10 (c1 int);
--enable_warnings
# Query PS to know initial read count for frm file.
+--enable_prepare_warnings
select Sum(ALL(COUNT_READ)) from performance_schema.file_summary_by_instance where FILE_NAME
like "%show_table_lw_db%" AND FILE_NAME like "%.frm%" AND EVENT_NAME='wait/io/file/sql/FRM'
into @count_read_before;
@@ -45,6 +46,7 @@ into @count_read_after;
select @count_read_after-@count_read_before;
+--disable_prepare_warnings
--disable_warnings
drop table t1;
drop database show_table_lw_db;
diff --git a/mysql-test/main/bug39022.result b/mysql-test/main/bug39022.result
index 599808ca7d7..5667c36ae94 100644
--- a/mysql-test/main/bug39022.result
+++ b/mysql-test/main/bug39022.result
@@ -28,7 +28,7 @@ SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SH
connection thread1;
# should not crash
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE;
-ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
+Got one of the listed errors
connection thread2;
d
disconnect thread2;
diff --git a/mysql-test/main/bug39022.test b/mysql-test/main/bug39022.test
index d293788e58e..e07d087a320 100644
--- a/mysql-test/main/bug39022.test
+++ b/mysql-test/main/bug39022.test
@@ -40,7 +40,7 @@ SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SH
connection thread1;
--echo # should not crash
---error ER_LOCK_DEADLOCK
+--error ER_LOCK_DEADLOCK,ER_LOCK_WAIT_TIMEOUT
SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; #crashes
connection thread2;
diff --git a/mysql-test/main/bug47671.result b/mysql-test/main/bug47671.result
index 55e422c12d9..96e24c1e85d 100644
--- a/mysql-test/main/bug47671.result
+++ b/mysql-test/main/bug47671.result
@@ -5,10 +5,10 @@
--------------
Server: MariaDB
-Server characterset: utf8
-Db characterset: utf8
-Client characterset: utf8
-Conn. characterset: utf8
+Server characterset: utf8mb3
+Db characterset: utf8mb3
+Client characterset: utf8mb3
+Conn. characterset: utf8mb3
--------------
diff --git a/mysql-test/main/cast.result b/mysql-test/main/cast.result
index 2276e73aac6..cebfba188c7 100644
--- a/mysql-test/main/cast.result
+++ b/mysql-test/main/cast.result
@@ -477,11 +477,11 @@ c1 c2 c3 c4 c5
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c2` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c3` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c4` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c5` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c2` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c3` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c4` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c5` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (a binary(4), b char(4) character set koi8r);
@@ -822,13 +822,13 @@ collation(cast("a" as char(10) binary))
latin1_bin
select collation(cast("a" as char(10) charset utf8 binary));
collation(cast("a" as char(10) charset utf8 binary))
-utf8_bin
+utf8mb3_bin
select collation(cast("a" as char(10) ascii binary));
collation(cast("a" as char(10) ascii binary))
latin1_bin
select collation(cast("a" as char(10) binary charset utf8));
collation(cast("a" as char(10) binary charset utf8))
-utf8_bin
+utf8mb3_bin
select collation(cast("a" as char(10) binary ascii));
collation(cast("a" as char(10) binary ascii))
latin1_bin
@@ -1239,14 +1239,14 @@ DECLARE a VARCHAR(30) CHARACTER SET utf8;
SET a=CAST(_utf8 0xD18F AS CHAR(1) CHARACTER SET latin1);
END;
$$
-ERROR HY000: Cannot convert 'utf8' character 0xD18F to 'latin1'
+ERROR HY000: Cannot convert 'utf8mb3' character 0xD18F to 'latin1'
# Conversion problems still escalate warnings to errors (with right truncation)
BEGIN NOT ATOMIC
DECLARE a VARCHAR(30) CHARACTER SET utf8;
SET a=CAST(_utf8 0xD18FD18F AS CHAR(1) CHARACTER SET latin1);
END;
$$
-ERROR HY000: Cannot convert 'utf8' character 0xD18F to 'latin1'
+ERROR HY000: Cannot convert 'utf8mb3' character 0xD18F to 'latin1'
# CAST(number AS CHAR) escalates warnings to errors on truncation
CREATE OR REPLACE TABLE t1 (a VARCHAR(10));
INSERT INTO t1 VALUES (CAST(123 AS CHAR(1)));
diff --git a/mysql-test/main/cli_options_force_protocol_not_win.result b/mysql-test/main/cli_options_force_protocol_not_win.result
new file mode 100644
index 00000000000..20b12eb2cc0
--- /dev/null
+++ b/mysql-test/main/cli_options_force_protocol_not_win.result
@@ -0,0 +1,24 @@
+#
+# MDEV-14974: --port ignored for --host=localhost
+#
+#
+# The following group of tests should produce no warnings
+#
+# exec MYSQL --host=localhost -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: Localhost via UNIX socket
+# exec MYSQL --port=MASTER_MYPORT --protocol=tcp -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: localhost via TCP/IP
+# exec MYSQL --host=localhost --port=MASTER_MYPORT --protocol=socket -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: Localhost via UNIX socket
+# exec MYSQL --host=127.0.0.1 --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: 127.0.0.1 via TCP/IP
+# exec MYSQL --host=localhost --socket=MASTER_MYSOCK --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: Localhost via UNIX socket
+# exec MYSQL --host=localhost --socket=MASTER_MYSOCK -e "status" 2>&1 | grep "Connection:\|WARNING:"
+Connection: Localhost via UNIX socket
+#
+# The remaining tests should produce warnings
+#
+# exec MYSQL --host=localhost --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+WARNING: Forcing protocol to TCP due to option specification. Please explicitly state intended protocol.
+Connection: localhost via TCP/IP
diff --git a/mysql-test/main/cli_options_force_protocol_not_win.test b/mysql-test/main/cli_options_force_protocol_not_win.test
new file mode 100644
index 00000000000..a3c495f26ee
--- /dev/null
+++ b/mysql-test/main/cli_options_force_protocol_not_win.test
@@ -0,0 +1,37 @@
+--echo #
+--echo # MDEV-14974: --port ignored for --host=localhost
+--echo #
+
+--source include/not_embedded.inc
+--source include/not_windows.inc
+
+
+--echo #
+--echo # The following group of tests should produce no warnings
+--echo #
+
+--echo # exec MYSQL --host=localhost -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=localhost -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+--echo # exec MYSQL --port=MASTER_MYPORT --protocol=tcp -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --port=$MASTER_MYPORT --protocol=tcp -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+--echo # exec MYSQL --host=localhost --port=MASTER_MYPORT --protocol=socket -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=localhost --port=$MASTER_MYPORT --protocol=socket -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+--echo # exec MYSQL --host=127.0.0.1 --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=127.0.0.1 --port=$MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+--echo # exec MYSQL --host=localhost --socket=MASTER_MYSOCK --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=localhost --socket=$MASTER_MYSOCK --port=$MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+--echo # exec MYSQL --host=localhost --socket=MASTER_MYSOCK -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=localhost --socket=$MASTER_MYSOCK -e "status" 2>&1 | grep "Connection:\|WARNING:"
+
+
+--echo #
+--echo # The remaining tests should produce warnings
+--echo #
+
+--echo # exec MYSQL --host=localhost --port=MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
+--exec $MYSQL --host=localhost --port=$MASTER_MYPORT -e "status" 2>&1 | grep "Connection:\|WARNING:"
diff --git a/mysql-test/main/cli_options_force_protocol_win.opt b/mysql-test/main/cli_options_force_protocol_win.opt
new file mode 100644
index 00000000000..318bd99ee26
--- /dev/null
+++ b/mysql-test/main/cli_options_force_protocol_win.opt
@@ -0,0 +1 @@
+--loose-enable-named-pipe \ No newline at end of file
diff --git a/mysql-test/main/cli_options_force_protocol_win.result b/mysql-test/main/cli_options_force_protocol_win.result
new file mode 100644
index 00000000000..4fffc2a4837
--- /dev/null
+++ b/mysql-test/main/cli_options_force_protocol_win.result
@@ -0,0 +1,24 @@
+#
+# MDEV-14974: --port ignored for --host=localhost
+#
+#
+# The following group of tests should produce no warnings
+#
+# exec MYSQL --host=localhost -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via TCP/IP
+# exec MYSQL --host=localhost --port=MASTER_MYPORT -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via TCP/IP
+# exec MYSQL --host=localhost --port=MASTER_MYPORT --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via TCP/IP
+# exec MYSQL --host=localhost --protocol=pipe -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via named pipe
+# exec MYSQL --host=localhost -W -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via named pipe
+# exec MYSQL --host=localhost -W --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+Connection: localhost via named pipe
+#
+# The remaining tests should produce warnings
+#
+# exec MYSQL --host=localhost --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+WARNING: Forcing protocol to PIPE due to option specification. Please explicitly state intended protocol.
+Connection: localhost via named pipe
diff --git a/mysql-test/main/cli_options_force_protocol_win.test b/mysql-test/main/cli_options_force_protocol_win.test
new file mode 100644
index 00000000000..54fbb78e5dc
--- /dev/null
+++ b/mysql-test/main/cli_options_force_protocol_win.test
@@ -0,0 +1,37 @@
+--echo #
+--echo # MDEV-14974: --port ignored for --host=localhost
+--echo #
+
+--source include/not_embedded.inc
+--source include/windows.inc
+
+
+--echo #
+--echo # The following group of tests should produce no warnings
+--echo #
+
+--echo # exec MYSQL --host=localhost -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+--echo # exec MYSQL --host=localhost --port=MASTER_MYPORT -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost --port=$MASTER_MYPORT -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+--echo # exec MYSQL --host=localhost --port=MASTER_MYPORT --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+--echo # exec MYSQL --host=localhost --protocol=pipe -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost --protocol=pipe -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+--echo # exec MYSQL --host=localhost -W -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost -W -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+--echo # exec MYSQL --host=localhost -W --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost -W --socket=$MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+
+
+--echo #
+--echo # The remaining tests should produce warnings
+--echo #
+
+--echo # exec MYSQL --host=localhost --socket=MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
+--exec $MYSQL --host=localhost --socket=$MASTER_MYSOCK -e "status" 2>&1 | findstr /c:"Connection:" /c:"WARNING:"
diff --git a/mysql-test/main/column_compression.result b/mysql-test/main/column_compression.result
index aaa195407ad..6e9722a661b 100644
--- a/mysql-test/main/column_compression.result
+++ b/mysql-test/main/column_compression.result
@@ -1483,7 +1483,7 @@ CREATE OR REPLACE TABLE t1 (a VARCHAR(1000) COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1000) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(1000) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1';
@@ -1509,7 +1509,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`a`)),
`b` varchar(1000) /*!100301 COMPRESSED*/ CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
- `c` varchar(1000) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `c` varchar(1000) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`d` tinytext /*!100301 COMPRESSED*/ CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
@@ -1566,7 +1566,7 @@ CREATE TABLE t1 (a VARCHAR(10) COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -1598,14 +1598,14 @@ CREATE TABLE t1 (a VARCHAR(10) COMPRESSED CHARACTER SET utf8 DEFAULT '');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''
+ `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(10) COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
+ `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -1717,7 +1717,7 @@ CREATE TABLE t1 (a TINYTEXT COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -1749,14 +1749,14 @@ CREATE TABLE t1 (a TINYTEXT COMPRESSED CHARACTER SET utf8 DEFAULT '');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''
+ `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a TINYTEXT COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
+ `a` tinytext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -1868,7 +1868,7 @@ CREATE TABLE t1 (a TEXT COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -1900,14 +1900,14 @@ CREATE TABLE t1 (a TEXT COMPRESSED CHARACTER SET utf8 DEFAULT '');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''
+ `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a TEXT COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
+ `a` text /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -2019,7 +2019,7 @@ CREATE TABLE t1 (a MEDIUMTEXT COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -2051,14 +2051,14 @@ CREATE TABLE t1 (a MEDIUMTEXT COMPRESSED CHARACTER SET utf8 DEFAULT '');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''
+ `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a MEDIUMTEXT COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
+ `a` mediumtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -2170,7 +2170,7 @@ CREATE TABLE t1 (a LONGTEXT COMPRESSED CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -2202,14 +2202,14 @@ CREATE TABLE t1 (a LONGTEXT COMPRESSED CHARACTER SET utf8 DEFAULT '');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''
+ `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a LONGTEXT COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
+ `a` longtext /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci GENERATED ALWAYS AS (repeat('a',100)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
#
@@ -2656,7 +2656,7 @@ CREATE TABLE t1 (a NVARCHAR(10) COMPRESSED);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(10) /*!100301 COMPRESSED*/ CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE t1 (a NVARCHAR(10) COMPRESSED BINARY COMPRESSED);
diff --git a/mysql-test/main/column_compression.test b/mysql-test/main/column_compression.test
index 2ae50be95d2..52235b07811 100644
--- a/mysql-test/main/column_compression.test
+++ b/mysql-test/main/column_compression.test
@@ -29,6 +29,7 @@ let $typec= BLOB COMPRESSED;
let $typeu= BLOB;
--source column_compression.inc
+--enable_prepare_warnings
--error ER_PARSE_ERROR
CREATE TABLE t1(a CHAR(100) COMPRESSED);
--error ER_WRONG_FIELD_SPEC
@@ -291,6 +292,7 @@ CREATE TABLE t1 (a VARCHAR(1000) COMPRESSED, FULLTEXT INDEX(a));
--error ER_COMPRESSED_COLUMN_USED_AS_KEY
CREATE TABLE t1 (a TEXT COMPRESSED, FULLTEXT INDEX(a));
+--disable_prepare_warnings
--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/column_compression_rpl.opt b/mysql-test/main/column_compression_rpl.opt
new file mode 100644
index 00000000000..1a01b4018c6
--- /dev/null
+++ b/mysql-test/main/column_compression_rpl.opt
@@ -0,0 +1 @@
+--skip-innodb-stats-persistent
diff --git a/mysql-test/main/comment_database.result b/mysql-test/main/comment_database.result
index ec791b19cf9..8e3cf1c904e 100644
--- a/mysql-test/main/comment_database.result
+++ b/mysql-test/main/comment_database.result
@@ -51,11 +51,11 @@ USE db1;
ALTER DATABASE COMMENT 'db1 comment' CHARACTER SET 'utf8';
SHOW CREATE DATABASE db1;
Database Create Database
-db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ COMMENT 'db1 comment'
+db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */ COMMENT 'db1 comment'
ALTER DATABASE db1 COMMENT 'this is db1 comment';
SHOW CREATE DATABASE db1;
Database Create Database
-db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ COMMENT 'this is db1 comment'
+db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */ COMMENT 'this is db1 comment'
ALTER DATABASE CHARACTER SET 'latin1';
SHOW CREATE DATABASE db1;
Database Create Database
diff --git a/mysql-test/main/comment_table.result b/mysql-test/main/comment_table.result
index b5e09d4e740..eccc62ea7dd 100644
--- a/mysql-test/main/comment_table.result
+++ b/mysql-test/main/comment_table.result
@@ -126,5 +126,5 @@ SELECT column_comment,char_length(column_comment) FROM information_schema.column
column_comment char_length(column_comment)
set names utf8;
create table t1 (x int comment 'a’');
-ERROR HY000: Invalid utf8 character string: 'a'
+ERROR HY000: Invalid utf8mb3 character string: 'a'
set names latin1;
diff --git a/mysql-test/main/commit.result b/mysql-test/main/commit.result
index f2e012d4782..44d46900d38 100644
--- a/mysql-test/main/commit.result
+++ b/mysql-test/main/commit.result
@@ -247,11 +247,13 @@ COMMIT;
SET @@completion_type=1;
COMMIT AND NO CHAIN;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
-START TRANSACTION;
TRUNCATE TABLE t1;
+INSERT INTO t1 VALUES(100);
+START TRANSACTION;
INSERT INTO t1 VALUES (1000);
SELECT * FROM t1;
s1
+100
1000
Should read '1000'
connection con1;
@@ -260,6 +262,7 @@ COMMIT;
connection default;
SELECT * FROM t1;
s1
+100
1000
Should only read the '1000' as this transaction is now in REP READ
COMMIT AND NO CHAIN;
diff --git a/mysql-test/main/commit.test b/mysql-test/main/commit.test
index 892e8f8d80a..a0d4ddee152 100644
--- a/mysql-test/main/commit.test
+++ b/mysql-test/main/commit.test
@@ -285,8 +285,11 @@ COMMIT;
SET @@completion_type=1;
COMMIT AND NO CHAIN;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
-START TRANSACTION;
TRUNCATE TABLE t1;
+# MDEV-515 takes X-lock on the table for the first insert.
+# So concurrent insert won't happen on the table
+INSERT INTO t1 VALUES(100);
+START TRANSACTION;
INSERT INTO t1 VALUES (1000);
SELECT * FROM t1;
--echo Should read '1000'
diff --git a/mysql-test/main/compound.result b/mysql-test/main/compound.result
index 18df4fd34e2..6efa23e833f 100644
--- a/mysql-test/main/compound.result
+++ b/mysql-test/main/compound.result
@@ -101,7 +101,7 @@ t1
t2
t3
t4
-set @a=0;
+set @a=0|
repeat
set @a = @a + 1;
until @a > 5
@@ -154,7 +154,7 @@ master-bin.000001 # Query # # use `test`; insert t1 values( NAME_CONST('a',4)+3)
master-bin.000001 # Query # # COMMIT
drop function fn|
drop table t1|
-set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
+set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"|
begin not atomic select @@sql_mode; end|
@@sql_mode
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
diff --git a/mysql-test/main/compound.test b/mysql-test/main/compound.test
index cb8bc0122c4..00f90e7a251 100644
--- a/mysql-test/main/compound.test
+++ b/mysql-test/main/compound.test
@@ -94,7 +94,7 @@ end loop|
show tables|
# REPEAT
-set @a=0;
+set @a=0|
repeat
set @a = @a + 1;
until @a > 5
@@ -146,7 +146,7 @@ drop table t1|
# MDEV-6609 SQL inside an anonymous block is executed with wrong SQL_MODE
#
-set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
+set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"|
begin not atomic select @@sql_mode; end|
create table t1 (a int)|
select a from t1 having a > 1|
diff --git a/mysql-test/main/compress.result b/mysql-test/main/compress.result
index 788eb7ab13b..24979346149 100644
--- a/mysql-test/main/compress.result
+++ b/mysql-test/main/compress.result
@@ -2097,10 +2097,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/connect.result b/mysql-test/main/connect.result
index 229c2d9dafe..74387168d98 100644
--- a/mysql-test/main/connect.result
+++ b/mysql-test/main/connect.result
@@ -324,12 +324,12 @@ Connection on extra port 2 ok
# -- Bug#49752: 2469.126.2 unintentionally breaks authentication
# against MySQL 5.1 server
#
-GRANT ALL ON test.* TO 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789'@'localhost' IDENTIFIED BY 'test123';
+GRANT ALL ON test.* TO 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567'@'localhost' IDENTIFIED BY 'test123';
FLUSH PRIVILEGES;
-connect con1,localhost,O1234567890123456789012345678901234567890123456789012345678901234567890123456789x,test123,test;
+connect con1,localhost, O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567x,test123,test;
disconnect con1;
connection default;
-DROP USER 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789'@'localhost';
+DROP USER 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567'@'localhost';
FLUSH PRIVILEGES;
#
# -- End of Bug#49752
diff --git a/mysql-test/main/connect.test b/mysql-test/main/connect.test
index b115e0620ec..c9969633a2a 100644
--- a/mysql-test/main/connect.test
+++ b/mysql-test/main/connect.test
@@ -339,16 +339,16 @@ if ($error)
--echo # against MySQL 5.1 server
--echo #
-GRANT ALL ON test.* TO 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789'@'localhost' IDENTIFIED BY 'test123';
+GRANT ALL ON test.* TO 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567'@'localhost' IDENTIFIED BY 'test123';
FLUSH PRIVILEGES;
-connect (con1,localhost,O1234567890123456789012345678901234567890123456789012345678901234567890123456789x,test123,test);
+connect (con1,localhost, O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567x,test123,test);
disconnect con1;
connection default;
-DROP USER 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789'@'localhost';
+DROP USER 'O1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567'@'localhost';
FLUSH PRIVILEGES;
diff --git a/mysql-test/main/connect_debug.result b/mysql-test/main/connect_debug.result
index cc3da50ec6b..2adafc2c4a9 100644
--- a/mysql-test/main/connect_debug.result
+++ b/mysql-test/main/connect_debug.result
@@ -11,10 +11,10 @@ drop user bad;
set global debug_dbug='+d,increase_srv_handshake_scramble_len';
connect(localhost,root,,test,MASTER_MYPORT,MYSQL_TMP_DIR/mysqld.1.sock);
connect con1,localhost,root;
-ERROR HY000: received malformed packet
+ERROR HY000: Received malformed packet
set global debug_dbug=@old_dbug;
set global debug_dbug='+d,poison_srv_handshake_scramble_len';
connect(localhost,root,,test,MASTER_MYPORT,MYSQL_TMP_DIR/mysqld.1.sock);
connect con2,localhost,root;
-ERROR HY000: received malformed packet
+ERROR HY000: Received malformed packet
set global debug_dbug=@old_dbug;
diff --git a/mysql-test/main/constraints.result b/mysql-test/main/constraints.result
index 105ea7cf1f4..143c22321ab 100644
--- a/mysql-test/main/constraints.result
+++ b/mysql-test/main/constraints.result
@@ -99,7 +99,7 @@ long_enough_name CREATE TABLE `long_enough_name` (
`f2` int(11) NOT NULL,
`f3` int(11) DEFAULT NULL,
`f4` timestamp NOT NULL DEFAULT current_timestamp(),
- `f5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'foo',
+ `f5` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT 'foo',
`f6` smallint(6) NOT NULL DEFAULT 1,
`f7` int(11) DEFAULT NULL,
PRIMARY KEY (`pk`),
diff --git a/mysql-test/main/crash_commit_before.result b/mysql-test/main/crash_commit_before.result
index 856a23e7f69..359d5851d60 100644
--- a/mysql-test/main/crash_commit_before.result
+++ b/mysql-test/main/crash_commit_before.result
@@ -3,7 +3,7 @@ START TRANSACTION;
insert into t1 values(9);
SET GLOBAL debug_dbug="d,crash_commit_before";
COMMIT;
-ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to server during query
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
diff --git a/mysql-test/main/create-uca.result b/mysql-test/main/create-uca.result
index 5a5e9d6faa7..a27e9d6dd16 100644
--- a/mysql-test/main/create-uca.result
+++ b/mysql-test/main/create-uca.result
@@ -13,8 +13,8 @@ t1 CREATE TABLE `t1` (
`c1` int(11) DEFAULT 12 COMMENT 'column1',
`c2` int(11) DEFAULT NULL COMMENT 'column2',
`c3` int(11) NOT NULL COMMENT 'column3',
- `c4` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'a',
- `c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b',
+ `c4` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'a',
+ `c5` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'b',
`c6` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
CREATE TABLE t2 AS SELECT * FROM t1;
@@ -24,8 +24,8 @@ t2 CREATE TABLE `t2` (
`c1` int(11) DEFAULT 12 COMMENT 'column1',
`c2` int(11) DEFAULT NULL COMMENT 'column2',
`c3` int(11) NOT NULL COMMENT 'column3',
- `c4` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'a',
- `c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b',
+ `c4` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'a',
+ `c5` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'b',
`c6` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1,t2;
diff --git a/mysql-test/main/create-uca.test b/mysql-test/main/create-uca.test
index 0acb51f7286..f73f6114962 100644
--- a/mysql-test/main/create-uca.test
+++ b/mysql-test/main/create-uca.test
@@ -1,5 +1,5 @@
# Prerequisites
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
# Initial cleanup
diff --git a/mysql-test/main/create.result b/mysql-test/main/create.result
index 49e60dd9bcc..9ab1db89029 100644
--- a/mysql-test/main/create.result
+++ b/mysql-test/main/create.result
@@ -721,7 +721,7 @@ primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(112) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(112) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -736,7 +736,7 @@ b int not null, primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`b` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -752,7 +752,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) NOT NULL,
- `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`c` int(1) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -765,7 +765,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` int(11) DEFAULT NULL,
- `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`c` int(1) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -777,7 +777,7 @@ b int not null, primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`b` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -789,7 +789,7 @@ b int not null, primary key (a)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+ `a` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
`b` int(11) NOT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -980,13 +980,13 @@ CREATE TABLE t1(c1 VARCHAR(33), KEY (c1) USING BTREE);
DROP TABLE t1;
CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1) USING HASH) ENGINE=MEMORY;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH NO
DROP TABLE t1;
CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 c1 1 c1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 c1 1 c1 A NULL NULL NULL YES BTREE NO
DROP TABLE t1;
create user mysqltest_1@'test@test';
ERROR HY000: Malformed hostname (illegal symbol: '@')
@@ -1089,7 +1089,7 @@ t1 CREATE TABLE `t1` (
`QUERY_ID` bigint(4) NOT NULL,
`INFO_BINARY` blob,
`TID` bigint(4) NOT NULL
-) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
create temporary table t1 like information_schema.processlist;
show create table t1;
@@ -1113,7 +1113,7 @@ t1 CREATE TEMPORARY TABLE `t1` (
`QUERY_ID` bigint(4) NOT NULL,
`INFO_BINARY` blob,
`TID` bigint(4) NOT NULL
-) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
create table t1 like information_schema.character_sets;
show create table t1;
@@ -1123,7 +1123,7 @@ t1 CREATE TABLE `t1` (
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL,
`DESCRIPTION` varchar(60) NOT NULL,
`MAXLEN` bigint(3) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
# --
diff --git a/mysql-test/main/create_drop_role.result b/mysql-test/main/create_drop_role.result
index 886dcfd0e72..b7ec45daeae 100644
--- a/mysql-test/main/create_drop_role.result
+++ b/mysql-test/main/create_drop_role.result
@@ -65,6 +65,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
SET ROLE NONE;
connect user_b, localhost, root,,;
diff --git a/mysql-test/main/create_or_replace.result b/mysql-test/main/create_or_replace.result
index 27d495f575f..e7170632fd6 100644
--- a/mysql-test/main/create_or_replace.result
+++ b/mysql-test/main/create_or_replace.result
@@ -1,4 +1,5 @@
-drop table if exists t1,t2,t3;
+SET @save_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=OFF;
CREATE TABLE t2 (a int);
INSERT INTO t2 VALUES(1),(2),(3);
#
@@ -579,3 +580,4 @@ DROP TABLE IF EXISTS tm, t;
# End of 10.3 tests
#
# End of 10.4 tests
+SET GLOBAL innodb_stats_persistent=@save_persistent;
diff --git a/mysql-test/main/create_or_replace.test b/mysql-test/main/create_or_replace.test
index b4bfcab50db..58221dde4fe 100644
--- a/mysql-test/main/create_or_replace.test
+++ b/mysql-test/main/create_or_replace.test
@@ -4,9 +4,9 @@
--source include/have_innodb.inc
--source include/have_metadata_lock_info.inc
---disable_warnings
-drop table if exists t1,t2,t3;
---enable_warnings
+
+SET @save_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=OFF;
#
# Create help table
@@ -368,6 +368,7 @@ lock table t1 write, t2 read;
--replace_column 1 #
--sorted_result
select * from information_schema.metadata_lock_info;
+
create or replace table t1 (i int);
--replace_column 1 #
--sorted_result
@@ -528,3 +529,5 @@ DROP TABLE IF EXISTS tm, t;
--echo #
--echo # End of 10.4 tests
+
+SET GLOBAL innodb_stats_persistent=@save_persistent;
diff --git a/mysql-test/main/create_utf8.result b/mysql-test/main/create_utf8.result
index d4665ce672c..a986454bbeb 100644
--- a/mysql-test/main/create_utf8.result
+++ b/mysql-test/main/create_utf8.result
@@ -46,7 +46,7 @@ Table Create Table
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show create view имÑ_вью_кодировке_утф8_длиной_больше_чем_42;
View Create View character_set_client collation_connection
-имÑ_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имÑ_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имÑ_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имÑ_полÑ_в_кодировке_утф8_длиной_больше_чем_45` AS `имÑ_полÑ_в_кодировке_утф8_длиной_больше_чем_45` from `имÑ_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8 utf8_general_ci
+имÑ_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имÑ_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имÑ_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имÑ_полÑ_в_кодировке_утф8_длиной_больше_чем_45` AS `имÑ_полÑ_в_кодировке_утф8_длиной_больше_чем_45` from `имÑ_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8mb3 utf8mb3_general_ci
create trigger имÑ_триггера_в_кодировке_утф8_длиной_больше_чем_49
before insert on имÑ_таблицы_в_кодировке_утф8_длиной_больше_чем_48 for each row set @a:=1;
select TRIGGER_NAME from information_schema.triggers where
diff --git a/mysql-test/main/ctype_big5.result b/mysql-test/main/ctype_big5.result
index 487f36c21fb..4aec26214df 100644
--- a/mysql-test/main/ctype_big5.result
+++ b/mysql-test/main/ctype_big5.result
@@ -807,70 +807,70 @@ A2C0 â…§
A2C1 â…¨
A2C2 â…©
Warnings:
-Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8'
+Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -886,70 +886,70 @@ C7D9 р
C7DA Ñ
C7DB Ñ‚
Warnings:
-Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8'
-Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8'
+Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8mb3'
+Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8mb3'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_cp1250_ch.result b/mysql-test/main/ctype_cp1250_ch.result
index b0aa4cff382..6a0d1969fc5 100644
--- a/mysql-test/main/ctype_cp1250_ch.result
+++ b/mysql-test/main/ctype_cp1250_ch.result
@@ -112,7 +112,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE CONCAT(c1)='a';
@@ -135,7 +135,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE 'a'=CONCAT(c1);
@@ -158,7 +158,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '% '=CONCAT(c1);
@@ -181,7 +181,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '%'=CONCAT(c1);
@@ -207,7 +207,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ';
diff --git a/mysql-test/main/ctype_cp1251.result b/mysql-test/main/ctype_cp1251.result
index 0e72f82bc77..a341d9ce471 100644
--- a/mysql-test/main/ctype_cp1251.result
+++ b/mysql-test/main/ctype_cp1251.result
@@ -386,7 +386,7 @@ FD FD FD D18D FD
FE FE FE D18E FE
FF FF FF D18F FF
Warnings:
-Warning 1977 Cannot convert 'cp1251' character 0x98 to 'utf8'
+Warning 1977 Cannot convert 'cp1251' character 0x98 to 'utf8mb3'
DROP TABLE t1;
SELECT strcmp('a','a '), strcmp('a ','a');
strcmp('a','a ') strcmp('a ','a')
diff --git a/mysql-test/main/ctype_cp932_binlog_stm.result b/mysql-test/main/ctype_cp932_binlog_stm.result
index 1de52ba5f6e..f80a8b22df9 100644
--- a/mysql-test/main/ctype_cp932_binlog_stm.result
+++ b/mysql-test/main/ctype_cp932_binlog_stm.result
@@ -387,139 +387,139 @@ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
81F0 â„«
Warnings:
-Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8'
+Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
Warnings:
-Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8'
+Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8mb3'
#
# WL#3090 Japanese Character Set adjustments
# Test cp932->Unicode conversion
@@ -10195,70 +10195,70 @@ FC49 EFA8AD
FC4A E9B899
FC4B E9BB91
Warnings:
-Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EB to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EC to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81ED to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EE to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81EF to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81F8 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81F9 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81FA to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x81FB to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8240 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8241 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8242 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8243 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8244 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8245 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8246 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8247 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8248 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8249 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x824A to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x824B to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x824C to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x824D to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x824E to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x8259 to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825A to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825B to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825C to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825D to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825E to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x825F to 'utf8'
-Warning 1977 Cannot convert 'cp932' character 0x827A to 'utf8'
+Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EB to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EC to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81ED to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EE to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81EF to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81FA to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x81FB to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8240 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8241 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8242 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8243 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8244 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8245 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8246 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8247 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8248 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8249 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x824A to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x824B to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x824C to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x824D to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x824E to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x8259 to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825A to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825B to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825C to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825D to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825E to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x825F to 'utf8mb3'
+Warning 1977 Cannot convert 'cp932' character 0x827A to 'utf8mb3'
DROP TABLE t1;
#
# WL#3090 Japanese Character Set adjustments
diff --git a/mysql-test/main/ctype_create.result b/mysql-test/main/ctype_create.result
index 41deeb315cd..e6f5e84cf61 100644
--- a/mysql-test/main/ctype_create.result
+++ b/mysql-test/main/ctype_create.result
@@ -86,24 +86,24 @@ USE test;
CREATE DATABASE tmp DEFAULT CHARACTER SET latin5;
USE tmp;
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET DEFAULT, CHARACTER SET utf8;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET DEFAULT' and 'CHARACTER SET utf8'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET DEFAULT' and 'CHARACTER SET utf8mb3'
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8, CHARACTER SET DEFAULT;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET DEFAULT'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8mb3' and 'CHARACTER SET DEFAULT'
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8, CHARACTER SET utf8;
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET DEFAULT, CHARACTER SET DEFAULT;
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1, b VARCHAR(10) CHARACTER SET utf8);
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8, CHARACTER SET latin1;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET latin1'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8mb3' and 'CHARACTER SET latin1'
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8, CHARACTER SET DEFAULT;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET DEFAULT'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8mb3' and 'CHARACTER SET DEFAULT'
ALTER TABLE t1 CONVERT TO CHARACTER SET latin1, CHARACTER SET utf8;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb3'
ALTER TABLE t1 CONVERT TO CHARACTER SET latin1, CHARACTER SET DEFAULT;
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET DEFAULT'
ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT, CHARACTER SET utf8;
-ERROR HY000: Conflicting declarations: 'CHARACTER SET latin5' and 'CHARACTER SET utf8'
+ERROR HY000: Conflicting declarations: 'CHARACTER SET latin5' and 'CHARACTER SET utf8mb3'
ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT, CHARACTER SET latin1;
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin5' and 'CHARACTER SET latin1'
DROP TABLE t1;
diff --git a/mysql-test/main/ctype_eucjpms.result b/mysql-test/main/ctype_eucjpms.result
index d4cfe4e2ca9..f8d7d6cea46 100644
--- a/mysql-test/main/ctype_eucjpms.result
+++ b/mysql-test/main/ctype_eucjpms.result
@@ -10565,70 +10565,70 @@ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
8FAABC Ģ
Warnings:
-Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -10636,70 +10636,70 @@ code a
8FA9C3 ð
8FABB9 ǵ
Warnings:
-Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8mb3'
#
# WL#3090 Japanese Character Set adjustments
# Test sjis->Unicode conversion
@@ -25786,70 +25786,70 @@ FEFC EE8EA9
FEFD EE8EAA
FEFE EE8EAB
Warnings:
-Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A1 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A2 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A3 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A4 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A5 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A6 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A7 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A8 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3A9 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AD to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AE to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3AF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BA to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BB to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BC to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BD to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BE to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3BF to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'eucjpms' character 0xA3DB to 'utf8'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AD to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AE to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3AF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BA to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BB to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BC to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BD to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BE to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3BF to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'eucjpms' character 0xA3DB to 'utf8mb3'
DROP TABLE t1;
#
# WL#3090 Japanese Character Set adjustments
diff --git a/mysql-test/main/ctype_euckr.result b/mysql-test/main/ctype_euckr.result
index 2a6081c79e3..cded18ff920 100644
--- a/mysql-test/main/ctype_euckr.result
+++ b/mysql-test/main/ctype_euckr.result
@@ -24725,70 +24725,70 @@ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
A1CA â„«
Warnings:
-Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8'
+Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -24821,70 +24821,70 @@ A8E5 ⓨ
A8E6 â“©
A9A2 Ä‘
Warnings:
-Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8'
-Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8'
+Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8mb3'
+Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8mb3'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_filename.result b/mysql-test/main/ctype_filename.result
index aaccea91793..739fa979f28 100644
--- a/mysql-test/main/ctype_filename.result
+++ b/mysql-test/main/ctype_filename.result
@@ -30,7 +30,7 @@ aÑ a@r1 Ña 61407231 40723161
#
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
-utf8 utf8 utf8
+utf8mb3 utf8mb3 utf8mb3
SET @old_character_set_client= @@character_set_client;
SET @old_character_set_connection= @@character_set_connection;
SET @old_character_set_results= @@character_set_results;
@@ -38,7 +38,7 @@ SET NAMES 'filename';
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'filename'
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
-utf8 utf8 utf8
+utf8mb3 utf8mb3 utf8mb3
CREATE VIEW v2 AS SELECT 1;
SHOW TABLE STATUS;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
diff --git a/mysql-test/main/ctype_filesystem.result b/mysql-test/main/ctype_filesystem.result
index b461cf2a1a4..512a0612fd3 100644
--- a/mysql-test/main/ctype_filesystem.result
+++ b/mysql-test/main/ctype_filesystem.result
@@ -7,5 +7,5 @@ Variable_name Value
character_set_filesystem latin1
SHOW VARIABLES like 'character_set_client';
Variable_name Value
-character_set_client utf8
+character_set_client utf8mb3
SET CHARACTER SET default;
diff --git a/mysql-test/main/ctype_gb2312.result b/mysql-test/main/ctype_gb2312.result
index fa52bc5ce8f..adb289b5fce 100644
--- a/mysql-test/main/ctype_gb2312.result
+++ b/mysql-test/main/ctype_gb2312.result
@@ -753,70 +753,70 @@ A2FA â…©
A2FB â…ª
A2FC â…«
Warnings:
-Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -848,70 +848,70 @@ A8B8 ǜ
A8B9 ü
A8BA ê
Warnings:
-Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8'
-Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8mb3'
+Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8mb3'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_gbk.result b/mysql-test/main/ctype_gbk.result
index 9b4500820ef..0ed7620a177 100644
--- a/mysql-test/main/ctype_gbk.result
+++ b/mysql-test/main/ctype_gbk.result
@@ -789,70 +789,70 @@ code a
A2FB â…ª
A2FC â…«
Warnings:
-Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8'
+Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -886,70 +886,70 @@ A8BA ê
A8BD Å„
A8BE ň
Warnings:
-Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8'
-Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8'
+Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8mb3'
+Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8mb3'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_gbk.test b/mysql-test/main/ctype_gbk.test
index 3a2d07d99bd..742b0a64c98 100644
--- a/mysql-test/main/ctype_gbk.test
+++ b/mysql-test/main/ctype_gbk.test
@@ -64,8 +64,10 @@ CREATE TABLE t1(a MEDIUMTEXT CHARACTER SET gbk,
INSERT INTO t1 VALUES
(REPEAT(0x1125,200000), REPEAT(0x1125,200000)), ('', ''), ('', '');
+--enable_prepare_warnings
SELECT a FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
SELECT b FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
+--disable_prepare_warnings
DROP TABLES t1;
diff --git a/mysql-test/main/ctype_gbk_export_import.result b/mysql-test/main/ctype_gbk_export_import.result
index 90a7d83dc97..664f515b35c 100644
--- a/mysql-test/main/ctype_gbk_export_import.result
+++ b/mysql-test/main/ctype_gbk_export_import.result
@@ -49,7 +49,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a1` text NOT NULL,
- `a2` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `a2` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`b1` blob NOT NULL,
`eol` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk COLLATE=gbk_chinese_ci
diff --git a/mysql-test/main/ctype_latin1.result b/mysql-test/main/ctype_latin1.result
index d2b10930210..cf51e679679 100644
--- a/mysql-test/main/ctype_latin1.result
+++ b/mysql-test/main/ctype_latin1.result
@@ -3650,13 +3650,13 @@ EXPLAIN EXTENDED SELECT 'abcdó', _latin1'abcdó', _utf8'abcdó';
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select 'abcdó' AS `abcdó`,_latin1'abcd\xC3\xB3' AS `abcdó`,_utf8'abcd\xC3\xB3' AS `abcdó`
+Note 1003 select 'abcdó' AS `abcdó`,_latin1'abcd\xC3\xB3' AS `abcdó`,_utf8mb3'abcd\xC3\xB3' AS `abcdó`
SET NAMES latin1;
EXPLAIN EXTENDED SELECT 'abcdó', _latin1'abcdó', _utf8'abcdó';
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select 'abcdó' AS `abcdó`,_latin1'abcd\xC3\xB3' AS `abcdó`,_utf8'abcd\xC3\xB3' AS `abcdó`
+Note 1003 select 'abcdó' AS `abcdó`,_latin1'abcd\xC3\xB3' AS `abcdó`,_utf8mb3'abcd\xC3\xB3' AS `abcdó`
#
# End of 5.5 tests
#
diff --git a/mysql-test/main/ctype_ldml.result b/mysql-test/main/ctype_ldml.result
index 65ffd75dfa0..74989a53daa 100644
--- a/mysql-test/main/ctype_ldml.result
+++ b/mysql-test/main/ctype_ldml.result
@@ -6,9 +6,9 @@ set names utf8;
show variables like 'character_sets_dir%';
Variable_name Value
character_sets_dir MYSQL_TEST_DIR/std_data/ldml/
-show collation like 'utf8_phone_ci';
+show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
-utf8_phone_ci utf8 352 8
+utf8mb3_phone_ci utf8mb3 352 8
CREATE TABLE t1 (
name VARCHAR(64),
phone VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_phone_ci
@@ -35,9 +35,9 @@ SELECT * FROM t1 WHERE phone='7 9 1 2 8 0 0 8 0 0 1';
name phone
Bar +7-912-800-80-01
DROP TABLE t1;
-show collation like 'utf8_test_ci';
+show collation like 'utf8mb3_test_ci';
Collation Charset Id Default Compiled Sortlen
-utf8_test_ci utf8 353 8
+utf8mb3_test_ci utf8mb3 353 8
create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -470,34 +470,34 @@ latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
latin1_swedish_nopad2_ci latin1 334 1
-utf8_bengali_standard_ci utf8 336 8
-utf8_bengali_traditional_ci utf8 337 8
-utf8_implicit_weights_ci utf8 338 8
-utf8_phone_ci utf8 352 8
-utf8_test_ci utf8 353 8
-utf8_5624_1 utf8 354 8
-utf8_5624_2 utf8 355 8
-utf8_5624_3 utf8 356 8
-utf8_5624_4 utf8 357 8
+utf8mb3_bengali_standard_ci utf8mb3 336 8
+utf8mb3_bengali_traditional_ci utf8mb3 337 8
+utf8mb3_implicit_weights_ci utf8mb3 338 8
+utf8mb3_phone_ci utf8mb3 352 8
+utf8mb3_test_ci utf8mb3 353 8
+utf8mb3_5624_1 utf8mb3 354 8
+utf8mb3_5624_2 utf8mb3 355 8
+utf8mb3_5624_3 utf8mb3 356 8
+utf8mb3_5624_4 utf8mb3 357 8
ucs2_test_ci ucs2 358 8
ucs2_vn_ci ucs2 359 8
ucs2_5624_1 ucs2 360 8
-utf8_5624_5 utf8 368 8
-utf8_5624_5_bad utf8 369 8
-utf8_czech_test_w2 utf8 370 4
-utf8_czech_test_nopad_w2 utf8 371 4
-utf8_czech_test_bad_w2 utf8 372 4
+utf8mb3_5624_5 utf8mb3 368 8
+utf8mb3_5624_5_bad utf8mb3 369 8
+utf8mb3_czech_test_w2 utf8mb3 370 4
+utf8mb3_czech_test_nopad_w2 utf8mb3 371 4
+utf8mb3_czech_test_bad_w2 utf8mb3 372 4
utf32_test_ci utf32 391 8
-utf8_maxuserid_ci utf8 2047 8
+utf8mb3_maxuserid_ci utf8mb3 2047 8
show collation like '%test%';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
-utf8_test_ci utf8 353 8
-utf8_czech_test_w2 utf8 370 4
-utf8_czech_test_nopad_w2 utf8 371 4
-utf8_czech_test_bad_w2 utf8 372 4
+utf8mb3_test_ci utf8mb3 353 8
+utf8mb3_czech_test_w2 utf8mb3 370 4
+utf8mb3_czech_test_nopad_w2 utf8mb3 371 4
+utf8mb3_czech_test_bad_w2 utf8mb3 372 4
ucs2_test_ci ucs2 358 8
utf8mb4_test_ci utf8mb4 326 8
utf8mb4_test_400_ci utf8mb4 328 8
@@ -524,9 +524,9 @@ a
b
DROP TABLE t1;
SET NAMES utf8 COLLATE utf8_phone_ci;
-SHOW COLLATION LIKE 'utf8_phone_ci';
+show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
-utf8_phone_ci utf8 352 8
+utf8mb3_phone_ci utf8mb3 352 8
SET NAMES utf8;
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci));
hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci))
diff --git a/mysql-test/main/ctype_ldml.test b/mysql-test/main/ctype_ldml.test
index be9d75900c0..2e38c092d27 100644
--- a/mysql-test/main/ctype_ldml.test
+++ b/mysql-test/main/ctype_ldml.test
@@ -22,7 +22,7 @@ set names utf8;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
show variables like 'character_sets_dir%';
-show collation like 'utf8_phone_ci';
+show collation like 'utf8mb3_phone_ci';
CREATE TABLE t1 (
name VARCHAR(64),
phone VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_phone_ci
@@ -38,7 +38,7 @@ SELECT * FROM t1 WHERE phone='79128008001';
SELECT * FROM t1 WHERE phone='7 9 1 2 8 0 0 8 0 0 1';
DROP TABLE t1;
-show collation like 'utf8_test_ci';
+show collation like 'utf8mb3_test_ci';
create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -207,7 +207,7 @@ DROP TABLE t1;
# Bug#47756 Setting 2byte collation ID with 'set names' crashes the server
#
SET NAMES utf8 COLLATE utf8_phone_ci;
-SHOW COLLATION LIKE 'utf8_phone_ci';
+show collation like 'utf8mb3_phone_ci';
SET NAMES utf8;
# make sure utf8mb4_test_400_ci is Unicode-4.0.0 based
diff --git a/mysql-test/main/ctype_many.result b/mysql-test/main/ctype_many.result
index c79ca7b2e9a..e3706f9d637 100644
--- a/mysql-test/main/ctype_many.result
+++ b/mysql-test/main/ctype_many.result
@@ -1721,11 +1721,11 @@ SELECT CHARSET(CONCAT(utf8, utf8mb4)) FROM t1;
CHARSET(CONCAT(utf8, utf8mb4))
utf8mb4
SELECT CHARSET(CONCAT(utf8, ucs2)) FROM t1;
-ERROR HY000: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (ucs2_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb3_general_ci,IMPLICIT) and (ucs2_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf8, utf16)) FROM t1;
-ERROR HY000: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf16_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb3_general_ci,IMPLICIT) and (utf16_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf8, utf32)) FROM t1;
-ERROR HY000: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf32_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb3_general_ci,IMPLICIT) and (utf32_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf8mb4, utf8)) FROM t1;
CHARSET(CONCAT(utf8mb4, utf8))
utf8mb4
@@ -1736,7 +1736,7 @@ ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf16_
SELECT CHARSET(CONCAT(utf8mb4, utf32)) FROM t1;
ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf32_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(ucs2, utf8)) FROM t1;
-ERROR HY000: Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (utf8mb3_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(ucs2, utf8mb4)) FROM t1;
ERROR HY000: Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(ucs2, utf16)) FROM t1;
@@ -1744,7 +1744,7 @@ ERROR HY000: Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (utf16_gen
SELECT CHARSET(CONCAT(ucs2, utf32)) FROM t1;
ERROR HY000: Illegal mix of collations (ucs2_general_ci,IMPLICIT) and (utf32_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf16, utf8)) FROM t1;
-ERROR HY000: Illegal mix of collations (utf16_general_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf16_general_ci,IMPLICIT) and (utf8mb3_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf16, ucs2)) FROM t1;
ERROR HY000: Illegal mix of collations (utf16_general_ci,IMPLICIT) and (ucs2_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf16, utf8mb4)) FROM t1;
@@ -1752,7 +1752,7 @@ ERROR HY000: Illegal mix of collations (utf16_general_ci,IMPLICIT) and (utf8mb4_
SELECT CHARSET(CONCAT(utf16, utf32)) FROM t1;
ERROR HY000: Illegal mix of collations (utf16_general_ci,IMPLICIT) and (utf32_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf32, utf8)) FROM t1;
-ERROR HY000: Illegal mix of collations (utf32_general_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf32_general_ci,IMPLICIT) and (utf8mb3_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf32, ucs2)) FROM t1;
ERROR HY000: Illegal mix of collations (utf32_general_ci,IMPLICIT) and (ucs2_general_ci,IMPLICIT) for operation 'concat'
SELECT CHARSET(CONCAT(utf32, utf8mb4)) FROM t1;
diff --git a/mysql-test/main/ctype_mb.result b/mysql-test/main/ctype_mb.result
index 4d33ac1d056..67aedbf209e 100644
--- a/mysql-test/main/ctype_mb.result
+++ b/mysql-test/main/ctype_mb.result
@@ -3,17 +3,17 @@ CREATE TABLE t1 SELECT _utf8'test' as c1, _utf8'теÑÑ‚' as c2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c2` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DELETE FROM t1;
ALTER TABLE t1 ADD c3 CHAR(4) CHARACTER SET utf8;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c3` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c2` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c3` char(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT IGNORE INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd');
Warnings:
@@ -28,12 +28,12 @@ CREATE TABLE t1 (a CHAR(4) CHARACTER SET utf8, KEY key_a(a(3)));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` char(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
ALTER TABLE t1 CHANGE a a CHAR(4);
SHOW CREATE TABLE t1;
Table Create Table
@@ -42,16 +42,16 @@ t1 CREATE TABLE `t1` (
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
ALTER TABLE t1 CHANGE a a CHAR(4) CHARACTER SET utf8;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` char(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
DROP TABLE t1;
diff --git a/mysql-test/main/ctype_recoding.result b/mysql-test/main/ctype_recoding.result
index fe2db13b497..1de68d62b39 100644
--- a/mysql-test/main/ctype_recoding.result
+++ b/mysql-test/main/ctype_recoding.result
@@ -162,10 +162,10 @@ Field Type Null Key Default Extra
DROP TABLE t1;
SET NAMES binary;
CREATE TABLE `goodÐÌÏÈÏ` (a int);
-ERROR HY000: Invalid utf8 character string: 'good\xD0\xCC\xCF\xC8\xCF'
+ERROR HY000: Invalid utf8mb3 character string: 'good\xD0\xCC\xCF\xC8\xCF'
SET NAMES utf8;
CREATE TABLE `goodÐÌÏÈÏ` (a int);
-ERROR HY000: Invalid utf8 character string: 'good\xD0\xCC\xCF\xC8\xCF'
+ERROR HY000: Invalid utf8mb3 character string: 'good\xD0\xCC\xCF\xC8\xCF'
set names latin1;
create table t1 (a char(10) character set koi8r, b text character set koi8r);
insert into t1 values ('test','test');
diff --git a/mysql-test/main/ctype_sjis.result b/mysql-test/main/ctype_sjis.result
index 8771d2a9786..4e08b0fbe98 100644
--- a/mysql-test/main/ctype_sjis.result
+++ b/mysql-test/main/ctype_sjis.result
@@ -674,139 +674,139 @@ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
81F0 â„«
Warnings:
-Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8'
+Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
Warnings:
-Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8'
+Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8mb3'
#
# WL#3090 Japanese Character Set adjustments
# Test sjis->Unicode conversion
@@ -7757,70 +7757,70 @@ EAA2 E791A4
EAA3 E5879C
EAA4 E78699
Warnings:
-Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EB to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EC to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81ED to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EE to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81EF to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81F8 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81F9 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81FA to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x81FB to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8240 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8241 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8242 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8243 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8244 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8245 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8246 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8247 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8248 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8249 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x824A to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x824B to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x824C to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x824D to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x824E to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x8259 to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825A to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825B to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825C to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825D to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825E to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x825F to 'utf8'
-Warning 1977 Cannot convert 'sjis' character 0x827A to 'utf8'
+Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EB to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EC to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81ED to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EE to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81EF to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81F8 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81F9 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81FA to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x81FB to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8240 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8241 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8242 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8243 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8244 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8245 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8246 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8247 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8248 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8249 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x824A to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x824B to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x824C to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x824D to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x824E to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x8259 to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825A to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825B to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825C to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825D to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825E to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x825F to 'utf8mb3'
+Warning 1977 Cannot convert 'sjis' character 0x827A to 'utf8mb3'
DROP TABLE t1;
#
# WL#3090 Japanese Character Set adjustments
diff --git a/mysql-test/main/ctype_uca.result b/mysql-test/main/ctype_uca.result
index 2298733851d..b567137df1e 100644
--- a/mysql-test/main/ctype_uca.result
+++ b/mysql-test/main/ctype_uca.result
@@ -6037,7 +6037,7 @@ USE d1;
CREATE TABLE t1 (c CHAR(10), KEY(c));
SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment
-c char(10) utf8_swedish_ci YES MUL NULL
+c char(10) utf8mb3_swedish_ci YES MUL NULL
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
want3results
@@ -6048,7 +6048,7 @@ DROP TABLE t1;
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment
-c1 varchar(15) utf8_swedish_ci YES MUL NULL
+c1 varchar(15) utf8mb3_swedish_ci YES MUL NULL
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
SELECT c1 as want3results from t1 where c1 like 'l%';
want3results
@@ -6104,7 +6104,7 @@ SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
-utf8_swedish_ci .wwwmysqlcom
+utf8mb3_swedish_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),
@@ -6114,7 +6114,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`name` varchar(10) DEFAULT NULL,
`level` smallint(5) unsigned DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_swedish_ci
insert into t1 values ('string',1);
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
concat(name,space(level)) concat(name, repeat(' ',level))
@@ -6143,16 +6143,16 @@ delete from t1;
insert into t1 values ('a'), ('a '), ('a\t');
select collation(a),hex(a) from t1 order by a;
collation(a) hex(a)
-utf8_unicode_ci 6109
-utf8_unicode_ci 61
-utf8_unicode_ci 6120
+utf8mb3_unicode_ci 6109
+utf8mb3_unicode_ci 61
+utf8mb3_unicode_ci 6120
drop table t1;
#
# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP
#
SELECT @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2);
SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP;
@@ -6169,7 +6169,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0;
INSERT INTO t1 (a) VALUES ("a");
INSERT INTO t1 (a) VALUES ("b");
@@ -6217,7 +6217,7 @@ a
DROP TABLE t1;
select @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
insert into t1 values('abcdef');
insert into t1 values('_bcdef');
@@ -6235,7 +6235,7 @@ ab_def
drop table t1;
SELECT @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
SELECT '\%b' LIKE '%\%';
'\%b' LIKE '%\%'
0
@@ -6244,7 +6244,7 @@ drop table if exists t1;
create table t1 as select repeat(' ', 64) as s1;
select collation(s1) from t1;
collation(s1)
-utf8_unicode_ci
+utf8mb3_unicode_ci
delete from t1;
INSERT INTO t1 VALUES ('ud'),('uf');
INSERT INTO t1 VALUES ('od'),('of');
@@ -6332,7 +6332,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`b` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1);
@@ -6548,7 +6548,7 @@ End of 5.1 tests
SET collation_connection=utf8_czech_ci;
SELECT @@collation_connection;
@@collation_connection
-utf8_czech_ci
+utf8mb3_czech_ci
#
# Bug#57737 Character sets: search fails with like, contraction, index
#
@@ -6574,7 +6574,7 @@ ch
DROP TABLE t1;
SELECT @@collation_connection;
@@collation_connection
-utf8_czech_ci
+utf8mb3_czech_ci
#
# Bug#57737 Character sets: search fails with like, contraction, index
# Part#2 - ignorable characters
@@ -6740,7 +6740,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
@@ -6959,7 +6959,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
@@ -7424,12 +7424,12 @@ F6FDF6FD9FF1B5F1CCF1
set @@collation_connection=utf8_unicode_ci;
select @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
CREATE TABLE t1 AS SELECT 'a' AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -7449,7 +7449,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `a` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -7565,7 +7565,7 @@ hex(weight_string('abc',25, 4, 0xC0))
0E330E4A0E6002090209020902090209020902090209020902
select @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
select hex(weight_string(cast(_latin1 0x80 as char)));
hex(weight_string(cast(_latin1 0x80 as char)))
0E23
@@ -7637,7 +7637,7 @@ hex(weight_string(cast(_latin1 0x808080 as char),25, 4, 0xC0))
0E230E230E2302090209020902090209020902090209020902
select @@collation_connection;
@@collation_connection
-utf8_unicode_ci
+utf8mb3_unicode_ci
select hex(weight_string('a' LEVEL 1));
hex(weight_string('a' LEVEL 1))
0E33
@@ -7668,10 +7668,10 @@ F6FDF6FD9FF1B5F1CCF1
set @@collation_connection=utf8_czech_ci;
select @@collation_connection;
@@collation_connection
-utf8_czech_ci
+utf8mb3_czech_ci
select collation(cast(_latin1 0xDF as char));
collation(cast(_latin1 0xDF as char))
-utf8_czech_ci
+utf8mb3_czech_ci
select hex(weight_string('s'));
hex(weight_string('s'))
0FEA
@@ -7987,7 +7987,7 @@ drop table if exists t1;
create table t1 as select repeat(' ', 64) as s1;
select collation(s1) from t1;
collation(s1)
-utf8_german2_ci
+utf8mb3_german2_ci
delete from t1;
INSERT INTO t1 VALUES ('ud'),('uf');
INSERT INTO t1 VALUES ('od'),('of');
@@ -8077,7 +8077,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL,
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL,
`b` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1);
@@ -8411,7 +8411,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE CONCAT(c1)='a';
@@ -8434,7 +8434,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE 'a'=CONCAT(c1);
@@ -8457,7 +8457,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '% '=CONCAT(c1);
@@ -8480,7 +8480,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '%'=CONCAT(c1);
@@ -8506,7 +8506,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ';
@@ -8531,7 +8531,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('ae'),('ä');
SELECT * FROM t1 WHERE c1='ä';
@@ -8569,7 +8569,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE CONCAT(c1)='a';
@@ -8592,7 +8592,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE 'a'=CONCAT(c1);
@@ -8615,7 +8615,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '% '=CONCAT(c1);
@@ -8638,7 +8638,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '%'=CONCAT(c1);
@@ -8664,7 +8664,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ';
@@ -8689,7 +8689,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('ae'),('ä');
SELECT * FROM t1 WHERE c1='ä';
@@ -8732,7 +8732,7 @@ SET NAMES utf8 COLLATE utf8_myanmar_ci;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_myanmar_ci
+utf8mb3_myanmar_ci
CREATE TABLE t1 AS SELECT 100000 AS id, REPEAT(' ', 64) AS s1 LIMIT 0;
SELECT COLLATION(s1) FROM t1;
COLLATION(s1)
@@ -8742,7 +8742,7 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
- `s1` varchar(64) CHARACTER SET utf8 COLLATE utf8_myanmar_ci DEFAULT NULL,
+ `s1` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_myanmar_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 (s1) VALUES
@@ -13966,12 +13966,12 @@ SET NAMES utf8 COLLATE utf8_thai_520_w2;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_thai_520_w2
+utf8mb3_thai_520_w2
SELECT ID, SORTLEN, COLLATION_NAME, CHARACTER_SET_NAME
FROM INFORMATION_SCHEMA.COLLATIONS
WHERE COLLATION_NAME LIKE @@collation_connection;
ID SORTLEN COLLATION_NAME CHARACTER_SET_NAME
-578 4 utf8_thai_520_w2 utf8
+578 4 utf8mb3_thai_520_w2 utf8mb3
#
# Testing strnxfrm
#
@@ -13979,7 +13979,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(3) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `a` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2));
SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1;
@@ -14012,7 +14012,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (_ucs2 0x3400);
INSERT INTO t1 VALUES (_ucs2 0xF001);
@@ -14025,7 +14025,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…');
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
@@ -14059,7 +14059,7 @@ SET collation_connection=@backup_collation_connection;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `a` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a;
a HEX(WEIGHT_STRING(a LEVEL 2))
@@ -14084,7 +14084,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('cota'),('cote'),('cotz');
INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë');
@@ -14228,7 +14228,7 @@ SET collation_connection=@backup_collation_connection;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(30) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL,
+ `a` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `a_id` (`a`,`id`)
diff --git a/mysql-test/main/ctype_uca_innodb.result b/mysql-test/main/ctype_uca_innodb.result
index c3b45a72e52..65cca24f233 100644
--- a/mysql-test/main/ctype_uca_innodb.result
+++ b/mysql-test/main/ctype_uca_innodb.result
@@ -15,7 +15,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
diff --git a/mysql-test/main/ctype_uca_innodb.test b/mysql-test/main/ctype_uca_innodb.test
index d105229dfa4..f51f40118e9 100644
--- a/mysql-test/main/ctype_uca_innodb.test
+++ b/mysql-test/main/ctype_uca_innodb.test
@@ -1,7 +1,7 @@
#
# Tests for UCA collations with InnoDB
#
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
--source include/have_innodb.inc
diff --git a/mysql-test/main/ctype_uca_partitions.result b/mysql-test/main/ctype_uca_partitions.result
index d7b79046b34..677b68e2387 100644
--- a/mysql-test/main/ctype_uca_partitions.result
+++ b/mysql-test/main/ctype_uca_partitions.result
@@ -4,7 +4,7 @@ PARTITION BY KEY(c1) PARTITIONS 3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
PARTITION BY KEY (`c1`)
PARTITIONS 3
diff --git a/mysql-test/main/ctype_ucs.test b/mysql-test/main/ctype_ucs.test
index 77a717c11a9..20e2ea3908d 100644
--- a/mysql-test/main/ctype_ucs.test
+++ b/mysql-test/main/ctype_ucs.test
@@ -75,7 +75,9 @@ DROP TABLE t1;
--echo # Problem # 1 (original report): wrong parsing of ucs2 data
SET character_set_connection=ucs2;
+--enable_prepare_warnings
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp.txt';
+--disable_prepare_warnings
CREATE TABLE t1(a INT);
LOAD DATA INFILE 'tmpp.txt' INTO TABLE t1 CHARACTER SET ucs2
(@b) SET a=REVERSE(@b);
@@ -88,7 +90,9 @@ remove_file $MYSQLD_DATADIR/test/tmpp.txt;
--echo # Problem # 2 : if you write and read ucs2 data to a file they're lost
+--enable_prepare_warnings
SELECT '00' UNION SELECT '10' INTO OUTFILE 'tmpp2.txt' CHARACTER SET ucs2;
+--disable_prepare_warnings
CREATE TABLE t1(a INT);
LOAD DATA INFILE 'tmpp2.txt' INTO TABLE t1 CHARACTER SET ucs2
(@b) SET a=REVERSE(@b);
diff --git a/mysql-test/main/ctype_ujis.result b/mysql-test/main/ctype_ujis.result
index d31ffab7621..177a609f446 100644
--- a/mysql-test/main/ctype_ujis.result
+++ b/mysql-test/main/ctype_ujis.result
@@ -3073,70 +3073,70 @@ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
code a
8FAABC Ģ
Warnings:
-Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8'
+Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8mb3'
SELECT * FROM t1
WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
@@ -3144,70 +3144,70 @@ code a
8FA9C3 ð
8FABB9 ǵ
Warnings:
-Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8'
+Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8mb3'
#
# WL#3090 Japanese Character Set adjustments
# Test sjis->Unicode conversion
@@ -18105,70 +18105,70 @@ FEFC EE8EA9
FEFD EE8EAA
FEFE EE8EAB
Warnings:
-Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2ED to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EE to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2EF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2F0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2F1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2FA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2FB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2FC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA2FD to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A1 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A2 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A3 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A4 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A5 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A6 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A7 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A8 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3A9 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AD to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AE to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3AF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BA to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BB to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BC to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BD to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BE to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3BF to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3C0 to 'utf8'
-Warning 1977 Cannot convert 'ujis' character 0xA3DB to 'utf8'
+Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2ED to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EE to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2EF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2F0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2F1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2FA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2FB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2FC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA2FD to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A1 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A2 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A3 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A4 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A5 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A6 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A7 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A8 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3A9 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AD to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AE to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3AF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BA to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BB to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BC to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BD to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BE to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3BF to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3C0 to 'utf8mb3'
+Warning 1977 Cannot convert 'ujis' character 0xA3DB to 'utf8mb3'
DROP TABLE t1;
#
# WL#3090 Japanese Character Set adjustments
diff --git a/mysql-test/main/ctype_upgrade.result b/mysql-test/main/ctype_upgrade.result
index 960d44f5937..30684df4023 100644
--- a/mysql-test/main/ctype_upgrade.result
+++ b/mysql-test/main/ctype_upgrade.result
@@ -18,7 +18,7 @@ test.maria050313_utf8_croatian_ci check status OK
SHOW CREATE TABLE maria050313_utf8_croatian_ci;
Table Create Table
maria050313_utf8_croatian_ci CREATE TABLE `maria050313_utf8_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT count(*) FROM maria050313_utf8_croatian_ci;
count(*)
@@ -29,7 +29,7 @@ ALTER TABLE maria050313_utf8_croatian_ci FORCE;
SHOW CREATE TABLE maria050313_utf8_croatian_ci;
Table Create Table
maria050313_utf8_croatian_ci CREATE TABLE `maria050313_utf8_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria050313_utf8_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
@@ -53,7 +53,7 @@ SHOW CREATE TABLE maria050313_ucs2_croatian_ci_def;
Table Create Table
maria050313_ucs2_croatian_ci_def CREATE TABLE `maria050313_ucs2_croatian_ci_def` (
`a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
DROP TABLE maria050313_ucs2_croatian_ci_def;
# Copying maria050313_ucs2_croatian_ci.* to MYSQLD_DATADIR
CHECK TABLE maria050313_ucs2_croatian_ci_def;
@@ -69,7 +69,7 @@ SHOW CREATE TABLE maria050313_ucs2_croatian_ci_def;
Table Create Table
maria050313_ucs2_croatian_ci_def CREATE TABLE `maria050313_ucs2_croatian_ci_def` (
`a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
SELECT * FROM maria050313_ucs2_croatian_ci_def ORDER BY a;
a
1
@@ -91,7 +91,7 @@ test.maria050533_xxx_croatian_ci repair status OK
SHOW CREATE TABLE maria050533_xxx_croatian_ci;
Table Create Table
maria050533_xxx_croatian_ci CREATE TABLE `maria050533_xxx_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL,
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL,
`b` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci DEFAULT NULL,
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
@@ -106,7 +106,7 @@ ALTER TABLE maria050533_xxx_croatian_ci FORCE;
SHOW CREATE TABLE maria050533_xxx_croatian_ci;
Table Create Table
maria050533_xxx_croatian_ci CREATE TABLE `maria050533_xxx_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL,
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL,
`b` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci DEFAULT NULL,
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
@@ -155,7 +155,7 @@ maria100004_xxx_croatian_ci CREATE TABLE `maria100004_xxx_croatian_ci` (
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
`e` varchar(10) CHARACTER SET utf32 COLLATE utf32_croatian_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
DROP TABLE maria100004_xxx_croatian_ci;
# Copying maria100004_xxx_croatian_ci.* to MYSQLD_DATADIR
ALTER TABLE maria100004_xxx_croatian_ci FORCE;
@@ -167,7 +167,7 @@ maria100004_xxx_croatian_ci CREATE TABLE `maria100004_xxx_croatian_ci` (
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
`e` varchar(10) CHARACTER SET utf32 COLLATE utf32_croatian_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria100004_xxx_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
nJ
@@ -206,7 +206,7 @@ mysql050614_xxx_croatian_ci CREATE TABLE `mysql050614_xxx_croatian_ci` (
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_mysql561_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_mysql561_ci DEFAULT NULL,
`e` varchar(10) CHARACTER SET utf32 COLLATE utf32_croatian_mysql561_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_mysql561_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_mysql561_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM mysql050614_xxx_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
NJ,Nj,nJ,nj
@@ -261,6 +261,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -270,6 +370,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.maria050313_ucs2_croatian_ci_def Needs upgrade
test.maria050313_utf8_croatian_ci Needs upgrade
@@ -320,6 +422,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -329,6 +531,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.maria050313_ucs2_croatian_ci_def OK
test.maria050313_utf8_croatian_ci OK
@@ -341,7 +545,7 @@ SHOW CREATE TABLE maria050313_ucs2_croatian_ci_def;
Table Create Table
maria050313_ucs2_croatian_ci_def CREATE TABLE `maria050313_ucs2_croatian_ci_def` (
`a` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
SELECT * FROM maria050313_ucs2_croatian_ci_def ORDER BY a;
a
1
@@ -350,7 +554,7 @@ a
SHOW CREATE TABLE maria050313_utf8_croatian_ci;
Table Create Table
maria050313_utf8_croatian_ci CREATE TABLE `maria050313_utf8_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria050313_utf8_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
@@ -359,7 +563,7 @@ NJ,Nj,nj
SHOW CREATE TABLE maria050533_xxx_croatian_ci;
Table Create Table
maria050533_xxx_croatian_ci CREATE TABLE `maria050533_xxx_croatian_ci` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_croatian_ci DEFAULT NULL,
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_croatian_ci DEFAULT NULL,
`b` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci DEFAULT NULL,
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
@@ -377,7 +581,7 @@ maria100004_xxx_croatian_ci CREATE TABLE `maria100004_xxx_croatian_ci` (
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_ci DEFAULT NULL,
`e` varchar(10) CHARACTER SET utf32 COLLATE utf32_croatian_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM maria100004_xxx_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
nJ
@@ -390,7 +594,7 @@ mysql050614_xxx_croatian_ci CREATE TABLE `mysql050614_xxx_croatian_ci` (
`c` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_croatian_mysql561_ci DEFAULT NULL,
`d` varchar(10) CHARACTER SET utf16 COLLATE utf16_croatian_mysql561_ci DEFAULT NULL,
`e` varchar(10) CHARACTER SET utf32 COLLATE utf32_croatian_mysql561_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_mysql561_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_croatian_mysql561_ci
SELECT GROUP_CONCAT(a ORDER BY BINARY a) FROM mysql050614_xxx_croatian_ci GROUP BY a;
GROUP_CONCAT(a ORDER BY BINARY a)
NJ,Nj,nJ,nj
diff --git a/mysql-test/main/ctype_utf8.result b/mysql-test/main/ctype_utf8.result
index 46b9a25b332..58ee5751780 100644
--- a/mysql-test/main/ctype_utf8.result
+++ b/mysql-test/main/ctype_utf8.result
@@ -127,7 +127,7 @@ create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
@@ -279,8 +279,8 @@ select null, null;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `s1` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `s2` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `s1` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `s2` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
delete from t1;
insert into t1 values('aaa','aaa');
@@ -316,7 +316,7 @@ NULL
drop table t1;
SELECT @@character_set_client, @@collation_connection;
@@character_set_client @@collation_connection
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
select 'ваÑÑ' rlike '\\bваÑÑ\\b';
'ваÑÑ' rlike '\\bваÑÑ\\b'
1
@@ -367,7 +367,7 @@ create table t1 (a enum('aaaa','проба') character set utf8);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` enum('aaaa','проба') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` enum('aaaa','проба') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('проба');
select * from t1;
@@ -377,7 +377,7 @@ create table t2 select ifnull(a,a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `ifnull(a,a)` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `ifnull(a,a)` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t2;
ifnull(a,a)
@@ -503,7 +503,7 @@ unique key a using hash (c(1))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`c`(1)) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
@@ -539,7 +539,7 @@ unique key a using btree (c(1))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`c`(1)) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
@@ -661,7 +661,7 @@ unique key a using hash (c(1))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
UNIQUE KEY `a` (`c`(1)) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
@@ -697,7 +697,7 @@ unique key a using btree (c(1))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
UNIQUE KEY `a` (`c`(1)) USING BTREE
) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
@@ -901,8 +901,8 @@ create table t2 select concat(a,_utf8'') as a, concat(b,_utf8'')as b from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `b` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `b` varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t2;
drop table t1;
@@ -942,16 +942,16 @@ delete from t1;
insert into t1 values ('a'), ('a '), ('a\t');
select collation(a),hex(a) from t1 order by a;
collation(a) hex(a)
-utf8_general_ci 6109
-utf8_general_ci 61
-utf8_general_ci 6120
+utf8mb3_general_ci 6109
+utf8mb3_general_ci 61
+utf8mb3_general_ci 6120
drop table t1;
#
# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2);
SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP;
@@ -968,7 +968,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0;
INSERT INTO t1 (a) VALUES ("a");
INSERT INTO t1 (a) VALUES ("b");
@@ -1016,7 +1016,7 @@ a
DROP TABLE t1;
select @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
insert into t1 values('abcdef');
insert into t1 values('_bcdef');
@@ -1034,7 +1034,7 @@ ab_def
drop table t1;
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
SELECT '\%b' LIKE '%\%';
'\%b' LIKE '%\%'
0
@@ -1043,7 +1043,7 @@ drop table if exists t1;
create table t1 as select repeat(' ', 64) as s1;
select collation(s1) from t1;
collation(s1)
-utf8_general_ci
+utf8mb3_general_ci
delete from t1;
INSERT INTO t1 VALUES ('ud'),('uf');
INSERT INTO t1 VALUES ('od'),('of');
@@ -1132,7 +1132,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`b` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1);
@@ -1159,7 +1159,7 @@ DROP TABLE t1;
#
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
-utf8 C3B7
+utf8mb3 C3B7
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR))
2001-01-01
@@ -1179,16 +1179,16 @@ delete from t1;
insert into t1 values ('a'), ('a '), ('a\t');
select collation(a),hex(a) from t1 order by a;
collation(a) hex(a)
-utf8_bin 6109
-utf8_bin 61
-utf8_bin 6120
+utf8mb3_bin 6109
+utf8mb3_bin 61
+utf8mb3_bin 6120
drop table t1;
#
# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP
#
SELECT @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2);
SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP;
@@ -1205,7 +1205,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0;
INSERT INTO t1 (a) VALUES ("a");
INSERT INTO t1 (a) VALUES ("b");
@@ -1253,7 +1253,7 @@ a
DROP TABLE t1;
select @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
insert into t1 values('abcdef');
insert into t1 values('_bcdef');
@@ -1271,7 +1271,7 @@ ab_def
drop table t1;
SELECT @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
SELECT '\%b' LIKE '%\%';
'\%b' LIKE '%\%'
0
@@ -1281,7 +1281,7 @@ user varchar(255) NOT NULL default ''
INSERT INTO t1 VALUES ('one'),('two');
SELECT CHARSET('a');
CHARSET('a')
-utf8
+utf8mb3
SELECT user, CONCAT('<', user, '>') AS c FROM t1;
user c
one <one>
@@ -1818,13 +1818,13 @@ drop table t1;
SET CHARACTER SET utf8;
SHOW VARIABLES LIKE 'character\_set\_%';
Variable_name Value
-character_set_client utf8
+character_set_client utf8mb3
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
-character_set_results utf8
+character_set_results utf8mb3
character_set_server latin1
-character_set_system utf8
+character_set_system utf8mb3
CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE crashtest;
CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8;
@@ -1845,7 +1845,7 @@ crash
36
37
Warnings:
-Warning 1300 Invalid utf8 character string: 'FFFFFC'
+Warning 1300 Invalid utf8mb3 character string: 'FFFFFC'
DROP TABLE crashtest;
DROP DATABASE crashtest;
USE test;
@@ -1934,38 +1934,38 @@ select char(0xff,0x8f using utf8);
char(0xff,0x8f using utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF8F'
+Warning 1300 Invalid utf8mb3 character string: 'FF8F'
select convert(char(0xff,0x8f) using utf8);
convert(char(0xff,0x8f) using utf8)
??
Warnings:
-Warning 1300 Invalid utf8 character string: '\xFF\x8F'
+Warning 1300 Invalid utf8mb3 character string: '\xFF\x8F'
set sql_mode=traditional;
select char(0xff,0x8f using utf8);
char(0xff,0x8f using utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF8F'
+Warning 1300 Invalid utf8mb3 character string: 'FF8F'
select char(195 using utf8);
char(195 using utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'C3'
+Warning 1300 Invalid utf8mb3 character string: 'C3'
select char(196 using utf8);
char(196 using utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'C4'
+Warning 1300 Invalid utf8mb3 character string: 'C4'
select char(2557 using utf8);
char(2557 using utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FD'
+Warning 1300 Invalid utf8mb3 character string: 'FD'
select convert(char(0xff,0x8f) using utf8);
convert(char(0xff,0x8f) using utf8)
??
Warnings:
-Warning 1300 Invalid utf8 character string: '\xFF\x8F'
+Warning 1300 Invalid utf8mb3 character string: '\xFF\x8F'
select hex(convert(char(2557 using latin1) using utf8));
hex(convert(char(2557 using latin1) using utf8))
09C3BD
@@ -2015,22 +2015,22 @@ insert into t1 values('t1_val');
create view v1 as select 'v1_val' as col1;
select coercibility(col1), collation(col1) from v1;
coercibility(col1) collation(col1)
-4 utf8_general_ci
+4 utf8mb3_general_ci
create view v2 as select col1 from v1 union select col1 from t1;
select coercibility(col1), collation(col1)from v2;
coercibility(col1) collation(col1)
-2 utf8_unicode_ci
-2 utf8_unicode_ci
+2 utf8mb3_unicode_ci
+2 utf8mb3_unicode_ci
drop view v1, v2;
create view v1 as select 'v1_val' collate utf8_swedish_ci as col1;
select coercibility(col1), collation(col1) from v1;
coercibility(col1) collation(col1)
-0 utf8_swedish_ci
+0 utf8mb3_swedish_ci
create view v2 as select col1 from v1 union select col1 from t1;
select coercibility(col1), collation(col1) from v2;
coercibility(col1) collation(col1)
-0 utf8_swedish_ci
-0 utf8_swedish_ci
+0 utf8mb3_swedish_ci
+0 utf8mb3_swedish_ci
drop view v1, v2;
drop table t1;
set names utf8;
@@ -2040,7 +2040,7 @@ select concat(a, if(b>10, N'x', N'y')) from t1;
concat(a, if(b>10, N'x', N'y'))
ay
select concat(a, if(b>10, N'æ', N'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8;
create table t1 (a varchar(10) character set latin1, b int);
@@ -2049,7 +2049,7 @@ select concat(a, if(b>10, _utf8'x', _utf8'y')) from t1;
concat(a, if(b>10, _utf8'x', _utf8'y'))
ay
select concat(a, if(b>10, _utf8'æ', _utf8'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8;
create table t1 (a varchar(10) character set latin1, b int);
@@ -2058,7 +2058,7 @@ select concat(a, if(b>10, _utf8 0x78, _utf8 0x79)) from t1;
concat(a, if(b>10, _utf8 0x78, _utf8 0x79))
ay
select concat(a, if(b>10, _utf8 0xC3A6, _utf8 0xC3AF)) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8;
create table t1 (a varchar(10) character set latin1, b int);
@@ -2067,7 +2067,7 @@ select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
concat(a, if(b>10, 'x' 'x', 'y' 'y'))
ayy
select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
CREATE TABLE t1 (
colA int(11) NOT NULL,
@@ -2129,39 +2129,39 @@ select hex(char(0xFF using utf8));
hex(char(0xFF using utf8))
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF'
+Warning 1300 Invalid utf8mb3 character string: 'FF'
select hex(convert(0xFF using utf8));
hex(convert(0xFF using utf8))
3F
Warnings:
-Warning 1300 Invalid utf8 character string: '\xFF'
+Warning 1300 Invalid utf8mb3 character string: '\xFF'
select hex(_utf8 0x616263FF);
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select hex(_utf8 X'616263FF');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select hex(_utf8 B'001111111111');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select (_utf8 X'616263FF');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
set sql_mode=default;
select hex(char(0xFF using utf8));
hex(char(0xFF using utf8))
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF'
+Warning 1300 Invalid utf8mb3 character string: 'FF'
select hex(convert(0xFF using utf8));
hex(convert(0xFF using utf8))
3F
Warnings:
-Warning 1300 Invalid utf8 character string: '\xFF'
+Warning 1300 Invalid utf8mb3 character string: '\xFF'
select hex(_utf8 0x616263FF);
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select hex(_utf8 X'616263FF');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select hex(_utf8 B'001111111111');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
select (_utf8 X'616263FF');
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
#
# Bug#44131 Binary-mode "order by" returns records in incorrect order for UTF-8 strings
#
@@ -2271,12 +2271,12 @@ Start of 5.4 tests
SET NAMES utf8mb3;
SHOW VARIABLES LIKE 'character_set_results%';
Variable_name Value
-character_set_results utf8
+character_set_results utf8mb3
CREATE TABLE t1 (a CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(1) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `a` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
SELECT _utf8mb3'test';
@@ -2297,7 +2297,7 @@ t1 CREATE TABLE `t1` (
`Tape` tinytext DEFAULT NULL,
PRIMARY KEY (`clipid`),
KEY `tape` (`Tape`(255))
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
DROP TABLE t1;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
@@ -2467,7 +2467,7 @@ CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `CONCAT(s1)` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `CONCAT(s1)` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
SET NAMES utf8;
@@ -2482,7 +2482,7 @@ create table t1 as select concat(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select hex(c1) from t1;
hex(c1)
@@ -2495,7 +2495,7 @@ create table t1 as select concat(18446744073709551615) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select hex(c1) from t1;
hex(c1)
@@ -2508,7 +2508,7 @@ create table t1 as select concat(1.1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select hex(c1) from t1;
hex(c1)
@@ -2516,12 +2516,12 @@ hex(c1)
drop table t1;
select hex(concat('a', 1+2)), charset(concat(1+2));
hex(concat('a', 1+2)) charset(concat(1+2))
-6133 utf8
+6133 utf8mb3
create table t1 as select concat(1+2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1-2));
@@ -2531,7 +2531,7 @@ create table t1 as select concat(1-2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1*2));
@@ -2541,7 +2541,7 @@ create table t1 as select concat(1*2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1/2));
@@ -2551,7 +2551,7 @@ create table t1 as select concat(1/2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(7) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(7) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1 div 2));
@@ -2561,7 +2561,7 @@ create table t1 as select concat(1 div 2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1 % 2));
@@ -2571,7 +2571,7 @@ create table t1 as select concat(1 % 2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(-1));
@@ -2581,7 +2581,7 @@ create table t1 as select concat(-1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(-(1+2)));
@@ -2591,7 +2591,7 @@ create table t1 as select concat(-(1+2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1|2));
@@ -2601,7 +2601,7 @@ create table t1 as select concat(1|2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(1&2));
@@ -2611,7 +2611,7 @@ create table t1 as select concat(1&2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(bit_count(12)));
@@ -2621,7 +2621,7 @@ create table t1 as select concat(bit_count(12)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(2<<1));
@@ -2631,7 +2631,7 @@ create table t1 as select concat(2<<1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(2>>1));
@@ -2641,7 +2641,7 @@ create table t1 as select concat(2>>1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(~0));
@@ -2651,7 +2651,7 @@ create table t1 as select concat(~0) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(3^2));
@@ -2661,7 +2661,7 @@ create table t1 as select concat(3^2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(abs(-2)));
@@ -2671,7 +2671,7 @@ create table t1 as select concat(abs(-2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(exp(2)),1));
@@ -2681,7 +2681,7 @@ create table t1 as select concat(exp(2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(log(2)),1));
@@ -2691,7 +2691,7 @@ create table t1 as select concat(log(2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(log2(2)),1));
@@ -2701,7 +2701,7 @@ create table t1 as select concat(log2(2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(log10(2)),1));
@@ -2711,7 +2711,7 @@ create table t1 as select concat(log10(2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(sqrt(2)),1));
@@ -2721,7 +2721,7 @@ create table t1 as select concat(sqrt(2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(pow(2,2)),1));
@@ -2731,7 +2731,7 @@ create table t1 as select concat(pow(2,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(acos(0.5)),1));
@@ -2741,7 +2741,7 @@ create table t1 as select concat(acos(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(asin(0.5)),1));
@@ -2751,7 +2751,7 @@ create table t1 as select concat(asin(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(atan(0.5)),1));
@@ -2761,7 +2761,7 @@ create table t1 as select concat(atan(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(cos(0.5)),1));
@@ -2771,7 +2771,7 @@ create table t1 as select concat(cos(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(sin(0.5)),1));
@@ -2781,7 +2781,7 @@ create table t1 as select concat(sin(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(tan(0.5)),1));
@@ -2791,7 +2791,7 @@ create table t1 as select concat(tan(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(degrees(0)));
@@ -2801,7 +2801,7 @@ create table t1 as select concat(degrees(0)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(radians(0)));
@@ -2811,7 +2811,7 @@ create table t1 as select concat(radians(0)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(ceiling(0.5)));
@@ -2822,7 +2822,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c0` int(3) NOT NULL,
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(floor(0.5)));
@@ -2833,7 +2833,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c0` int(3) NOT NULL,
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(round(0.5)));
@@ -2843,7 +2843,7 @@ create table t1 as select concat(round(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(sign(0.5)));
@@ -2853,14 +2853,14 @@ create table t1 as select concat(sign(0.5)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(rand()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(length('a')));
@@ -2870,7 +2870,7 @@ create table t1 as select concat(length('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(char_length('a')));
@@ -2880,7 +2880,7 @@ create table t1 as select concat(char_length('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(bit_length('a')));
@@ -2890,7 +2890,7 @@ create table t1 as select concat(bit_length('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(11) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(coercibility('a')));
@@ -2900,7 +2900,7 @@ create table t1 as select concat(coercibility('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(locate('a','a')));
@@ -2910,7 +2910,7 @@ create table t1 as select concat(locate('a','a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(11) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(field('c','a','b','c')));
@@ -2920,7 +2920,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(ascii(61)));
@@ -2930,7 +2930,7 @@ create table t1 as select concat(ascii(61)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(ord(61)));
@@ -2940,7 +2940,7 @@ create table t1 as select concat(ord(61)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(7) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(7) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(find_in_set('b','a,b,c,d')));
@@ -2950,7 +2950,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select md5('a'), hex(md5('a'));
@@ -2960,7 +2960,7 @@ create table t1 as select md5('a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select old_password('a'), hex(old_password('a'));
@@ -2970,7 +2970,7 @@ create table t1 as select old_password('a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(16) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select password('a'), hex(password('a'));
@@ -2980,7 +2980,7 @@ create table t1 as select password('a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(41) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(41) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select sha('a'), hex(sha('a'));
@@ -2990,7 +2990,7 @@ create table t1 as select sha('a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(40) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select sha1('a'), hex(sha1('a'));
@@ -3000,7 +3000,7 @@ create table t1 as select sha1('a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(40) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(cast('-1' as signed)));
@@ -3010,7 +3010,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(cast('1' as unsigned)));
@@ -3020,7 +3020,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(cast(1/2 as decimal(5,5))));
@@ -3030,7 +3030,7 @@ create table t1 as select concat(cast(1/2 as decimal(5,5))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(7) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(7) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(cast('2001-01-02 03:04:05' as date)));
@@ -3040,7 +3040,7 @@ create table t1 as select concat(cast('2001-01-02 03:04:05' as date)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
c1
@@ -3053,7 +3053,7 @@ create table t1 as select concat(cast('2001-01-02 03:04:05' as time)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
c1
@@ -3066,7 +3066,7 @@ create table t1 as select concat(cast('2001-01-02' as datetime)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
c1
@@ -3079,7 +3079,7 @@ create table t1 as select concat(least(1,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(greatest(1,2)));
@@ -3089,7 +3089,7 @@ create table t1 as select concat(greatest(1,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(case when 11 then 22 else 33 end));
@@ -3099,7 +3099,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(coalesce(1,2)));
@@ -3109,7 +3109,7 @@ create table t1 as select concat(coalesce(1,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat_ws(1,2,3));
@@ -3119,7 +3119,7 @@ create table t1 as select concat_ws(1,2,3) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(group_concat(1,2,3));
@@ -3129,14 +3129,14 @@ create table t1 as select group_concat(1,2,3) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select 1 as c1 union select 'a';
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select hex(c1) from t1 order by c1;
hex(c1)
@@ -3147,7 +3147,7 @@ create table t1 as select concat(last_insert_id()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(benchmark(0,0)));
@@ -3157,7 +3157,7 @@ create table t1 as select concat(benchmark(0,0)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(sleep(0)));
@@ -3167,7 +3167,7 @@ create table t1 as select concat(sleep(0)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(is_free_lock('xxxx')));
@@ -3177,21 +3177,21 @@ create table t1 as select concat(is_free_lock('xxxx')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(is_used_lock('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(release_lock('a')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(crc32('')));
@@ -3201,7 +3201,7 @@ create table t1 as select concat(crc32('')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(uncompressed_length('')));
@@ -3211,14 +3211,14 @@ create table t1 as select concat(uncompressed_length('')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(connection_id()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(inet_aton('127.1.1.1')));
@@ -3228,7 +3228,7 @@ create table t1 as select concat(inet_aton('127.1.1.1')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(inet_ntoa(2130772225)));
@@ -3241,7 +3241,7 @@ c1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(31) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(31) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select 1;
@@ -3254,7 +3254,7 @@ create table t1 as select concat(row_count()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(found_rows()));
@@ -3264,21 +3264,21 @@ create table t1 as select concat(found_rows()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(uuid_short()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(uuid()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
@@ -3298,7 +3298,7 @@ create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(@a1:=1));
@@ -3311,7 +3311,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3326,7 +3326,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` bigint(20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3340,7 +3340,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3355,7 +3355,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3369,7 +3369,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` decimal(2,1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3384,7 +3384,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(83) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c1` varchar(83) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c2` decimal(65,38) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3398,7 +3398,7 @@ hex(c1)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a'='a' IS TRUE));
@@ -3408,7 +3408,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a'='a' IS NOT TRUE));
@@ -3418,7 +3418,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(NOT 'a'='a'));
@@ -3428,7 +3428,7 @@ create table t1 as select concat(NOT 'a'='a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' IS NULL));
@@ -3438,7 +3438,7 @@ create table t1 as select concat('a' IS NULL) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' IS NOT NULL));
@@ -3448,7 +3448,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' rlike 'a'));
@@ -3458,7 +3458,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(strcmp('a','b')));
@@ -3468,7 +3468,7 @@ create table t1 as select concat(strcmp('a','b')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' like 'a'));
@@ -3478,7 +3478,7 @@ create table t1 as select concat('a' like 'b') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' between 'b' and 'c'));
@@ -3488,7 +3488,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat('a' in ('a','b')));
@@ -3498,7 +3498,7 @@ create table t1 as select concat('a' in ('a','b')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(interval(23, 1, 15, 17, 30, 44, 200)));
@@ -3508,7 +3508,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (a varchar(10), fulltext key(a));
@@ -3520,7 +3520,7 @@ create table t2 as select concat(match (a) against ('a')) as a from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `a` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
select hex(ifnull(1,'a'));
@@ -3530,7 +3530,7 @@ create table t1 as select ifnull(1,'a') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(ifnull(1,1)));
@@ -3540,7 +3540,7 @@ create table t1 as select concat(ifnull(1,1)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(ifnull(1.1,1.1)));
@@ -3550,7 +3550,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(if(1,'b',1));
@@ -3560,7 +3560,7 @@ create table t1 as select if(1,'b',1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(if(1,1,'b'));
@@ -3570,7 +3570,7 @@ create table t1 as select if(1,1,'b') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(if(1,1,1)));
@@ -3580,7 +3580,7 @@ create table t1 as select concat(if(1,1,1)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(nullif(1,2)));
@@ -3590,7 +3590,7 @@ create table t1 as select concat(nullif(1,2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(Dimension(GeomFromText('LINESTRING(0 0,10 10)'))));
@@ -3600,7 +3600,7 @@ create table t1 as select concat(Dimension(GeomFromText('LINSTRING(0 0,10 10)'))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))));
@@ -3610,7 +3610,7 @@ create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))));
@@ -3620,7 +3620,7 @@ create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))));
@@ -3630,7 +3630,7 @@ create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))));
@@ -3640,7 +3640,7 @@ create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(IsEmpty(GeomFromText('POINT(1 1)'))));
@@ -3650,7 +3650,7 @@ create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(21) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(IsSimple(GeomFromText('POINT(1 1)'))));
@@ -3660,7 +3660,7 @@ create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))));
@@ -3670,7 +3670,7 @@ create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))));
@@ -3685,7 +3685,7 @@ create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(y(GeomFromText('Point(1 2)'))));
@@ -3695,7 +3695,7 @@ create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)'))));
@@ -3705,7 +3705,7 @@ create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)')))
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))));
@@ -3715,7 +3715,7 @@ create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(23) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(GeometryType(GeomFromText('Point(1 2)'))));
@@ -3725,7 +3725,7 @@ create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(AsText(GeomFromText('Point(1 2)'))));
@@ -3735,7 +3735,7 @@ create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(period_add(200902, 2)));
@@ -3745,7 +3745,7 @@ create table t1 as select concat(period_add(200902, 2)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(period_diff(200902, 200802)));
@@ -3758,7 +3758,7 @@ Warning 1265 Data truncated for column 'c1' at row 1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(to_days(20090224)));
@@ -3768,7 +3768,7 @@ create table t1 as select concat(to_days(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(dayofmonth(20090224)));
@@ -3778,7 +3778,7 @@ create table t1 as select concat(dayofmonth(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(dayofyear(20090224)));
@@ -3788,7 +3788,7 @@ create table t1 as select concat(dayofyear(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(hour('10:11:12')));
@@ -3798,7 +3798,7 @@ create table t1 as select concat(hour('10:11:12')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(minute('10:11:12')));
@@ -3808,7 +3808,7 @@ create table t1 as select concat(minute('10:11:12')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(second('10:11:12')));
@@ -3818,7 +3818,7 @@ create table t1 as select concat(second('10:11:12')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(quarter(20090224)));
@@ -3828,7 +3828,7 @@ create table t1 as select concat(quarter(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(week(20090224)));
@@ -3838,7 +3838,7 @@ create table t1 as select concat(week(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(yearweek(20090224)));
@@ -3848,7 +3848,7 @@ create table t1 as select concat(yearweek(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(year(20090224)));
@@ -3858,7 +3858,7 @@ create table t1 as select concat(year(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(weekday(20090224)));
@@ -3868,7 +3868,7 @@ create table t1 as select concat(weekday(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(dayofweek(20090224)));
@@ -3878,7 +3878,7 @@ create table t1 as select concat(dayofweek(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(unix_timestamp(20090224)));
@@ -3888,7 +3888,7 @@ create table t1 as select concat(unix_timestamp(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(17) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(17) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(time_to_sec('10:11:12')));
@@ -3898,7 +3898,7 @@ create table t1 as select concat(time_to_sec('10:11:12')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(17) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(17) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(extract(year from 20090702)));
@@ -3908,7 +3908,7 @@ create table t1 as select concat(extract(year from 20090702)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(microsecond('12:00:00.123456')));
@@ -3918,7 +3918,7 @@ create table t1 as select concat(microsecond('12:00:00.123456')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(month(20090224)));
@@ -3928,14 +3928,14 @@ create table t1 as select concat(month(20090224)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(last_day('2003-02-05')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select c1, hex(c1) from t1;
c1 hex(c1)
@@ -3945,7 +3945,7 @@ create table t1 as select concat(from_days(730669)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select c1, hex(c1) from t1;
c1 hex(c1)
@@ -3955,21 +3955,21 @@ create table t1 as select concat(curdate()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(utc_date()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(curtime()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select repeat('a',20) as c1 limit 0;
@@ -3985,7 +3985,7 @@ create table t1 as select concat(utc_time()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(sec_to_time(2378)));
@@ -3995,7 +3995,7 @@ create table t1 as select concat(sec_to_time(2378)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')));
@@ -4005,7 +4005,7 @@ create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(maketime(10,11,12)));
@@ -4015,7 +4015,7 @@ create table t1 as select concat(maketime(10,11,12)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(get_format(DATE,'USA'));
@@ -4025,7 +4025,7 @@ create table t1 as select get_format(DATE,'USA') as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(17) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(17) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(concat(from_unixtime(1111885200)),4));
@@ -4035,7 +4035,7 @@ create table t1 as select concat(from_unixtime(1111885200)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')));
@@ -4045,7 +4045,7 @@ create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:0
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day)));
@@ -4055,7 +4055,7 @@ create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
c1
@@ -4068,7 +4068,7 @@ create table t1 as select concat(makedate(2009,1)) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
select * from t1;
c1
@@ -4078,21 +4078,21 @@ create table t1 as select concat(now()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(utc_timestamp()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select concat(sysdate()) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(addtime('00:00:00','11:22:33')));
@@ -4102,7 +4102,7 @@ create table t1 as select concat(addtime('00:00:00','11:22:33')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(26) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(26) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(concat(subtime('23:59:59','11:22:33')));
@@ -4112,7 +4112,7 @@ create table t1 as select concat(subtime('23:59:59','11:22:33')) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(26) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(26) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(elt(1,2,3));
@@ -4122,7 +4122,7 @@ create table t1 as select elt(1,2,3) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(export_set(1,2,3,4,2));
@@ -4132,7 +4132,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(127) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(127) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(insert(1133,3,0,22));
@@ -4142,7 +4142,7 @@ create table t1 as select insert(1133,3,0,22) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(lcase(123));
@@ -4152,7 +4152,7 @@ create table t1 as select lcase(123) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(left(123,1));
@@ -4162,7 +4162,7 @@ create table t1 as select left(123,1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(lower(123));
@@ -4172,7 +4172,7 @@ create table t1 as select lower(123) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(lpad(1,2,0));
@@ -4182,7 +4182,7 @@ create table t1 as select lpad(1,2,0) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(ltrim(1));
@@ -4192,7 +4192,7 @@ create table t1 as select ltrim(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(mid(1,1,1));
@@ -4202,7 +4202,7 @@ create table t1 as select mid(1,1,1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(repeat(1,2));
@@ -4212,7 +4212,7 @@ create table t1 as select repeat(1,2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(replace(1,1,2));
@@ -4222,7 +4222,7 @@ create table t1 as select replace(1,1,2) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(reverse(12));
@@ -4232,7 +4232,7 @@ create table t1 as select reverse(12) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(right(123,1));
@@ -4242,7 +4242,7 @@ create table t1 as select right(123,1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(rpad(1,2,0));
@@ -4252,7 +4252,7 @@ create table t1 as select rpad(1,2,0) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(rtrim(1));
@@ -4262,7 +4262,7 @@ create table t1 as select rtrim(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(soundex(1));
@@ -4272,7 +4272,7 @@ create table t1 as select soundex(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(substring(1,1,1));
@@ -4282,7 +4282,7 @@ create table t1 as select substring(1,1,1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(trim(1));
@@ -4292,7 +4292,7 @@ create table t1 as select trim(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(ucase(1));
@@ -4302,7 +4302,7 @@ create table t1 as select ucase(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select hex(upper(1));
@@ -4312,14 +4312,14 @@ create table t1 as select upper(1) as c1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 as select repeat(' ', 64) as a limit 0;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ("1.1"), ("2.1");
select a, hex(a) from t1;
@@ -4341,7 +4341,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a tinyint zerofill);
@@ -4369,7 +4369,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a smallint);
@@ -4381,7 +4381,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a smallint zerofill);
@@ -4403,7 +4403,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a mediumint zerofill);
@@ -4425,7 +4425,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(11) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a int zerofill);
@@ -4447,7 +4447,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a bigint zerofill);
@@ -4472,7 +4472,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(12) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a float zerofill);
@@ -4497,7 +4497,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(22) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(22) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a double zerofill);
@@ -4521,7 +4521,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a year);
@@ -4533,7 +4533,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a bit(64));
@@ -4569,7 +4569,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a date);
@@ -4583,7 +4583,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a time);
@@ -4601,7 +4601,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a datetime);
@@ -4615,7 +4615,7 @@ create table t2 as select concat(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `concat(a)` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `concat(a)` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
create table t1 (a tinyint);
@@ -5049,37 +5049,37 @@ drop function f1;
SET @x=md5('a');
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=old_password('a');
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=password('a');
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=sha('a');
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=sha1('a');
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=astext(point(1,2));
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
SET @x=aswkt(point(1,2));
SELECT charset(@x), collation(@x);
charset(@x) collation(@x)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
#
# Bug#54916 GROUP_CONCAT + IFNULL truncates output
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE TABLE t1 (a MEDIUMINT NULL) ENGINE=MYISAM;
INSERT INTO t1 VALUES (1234567);
SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1;
@@ -5108,116 +5108,116 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `CONCAT(a)` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `IFNULL(a,'')` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `IF(a,a,'')` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `CASE WHEN a THEN a ELSE '' END` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `COALESCE(a,'')` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `CONCAT(a)` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `IFNULL(a,'')` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `IF(a,a,'')` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `CASE WHEN a THEN a ELSE '' END` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `COALESCE(a,'')` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT LCASE(a) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `LCASE(a)` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `LCASE(a)` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT UCASE(a) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `UCASE(a)` varchar(9) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `UCASE(a)` varchar(9) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `REPEAT(1,2)` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `REPEAT(1,2)` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `LEFT(123,2)` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `LEFT(123,2)` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `RIGHT(123,2)` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `RIGHT(123,2)` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `LTRIM(123)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `LTRIM(123)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `RTRIM(123)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `RTRIM(123)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `ELT(1,111,222,333)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `ELT(1,111,222,333)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `REPLACE(111,2,3)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `REPLACE(111,2,3)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `SOUNDEX(1)` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `SOUNDEX(1)` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8);
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
DROP TABLE t1;
@@ -5229,7 +5229,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE TABLE t1 (
id INT(11) DEFAULT NULL,
date_column DATE DEFAULT NULL,
@@ -5248,14 +5248,14 @@ DROP TABLE t1;
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
-utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3
SELECT
CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2,
CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field_str2 field_date field_datetime
-utf8 utf8 binary binary
+utf8mb3 utf8mb3 binary binary
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
@@ -5265,8 +5265,8 @@ DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_da
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `field_str1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `field1_str2` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `field_str1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `field1_str2` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -5295,14 +5295,14 @@ field_str1 field1_str2 field_date field_datetime
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
-utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3
SELECT
CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1,
CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2,
CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1,
CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2;
addtime1 addtime2 date_add1 date_add2
-utf8 utf8 utf8 utf8
+utf8mb3 utf8mb3 utf8mb3 utf8mb3
CREATE TABLE t1 AS
SELECT
ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1,
@@ -5312,10 +5312,10 @@ DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `addtime1` varchar(26) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `addtime2` varchar(26) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `date_add1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `date_add2` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `addtime1` varchar(26) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `addtime2` varchar(26) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `date_add1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `date_add2` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT * FROM t1;
addtime1 addtime2 date_add1 date_add2
@@ -5326,7 +5326,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE PROCEDURE p1()
BEGIN
DECLARE v_LastPaymentDate DATETIME DEFAULT NULL;
@@ -5345,7 +5345,7 @@ Note 1003 select v_LastPaymentDate@0 < current_timestamp() AS `v_LastPaymentDate
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select concat(convert(v_LastPaymentDate@0 using utf8),current_timestamp()) AS `CONCAT(v_LastPaymentDate, NOW())`
+Note 1003 select concat(convert(v_LastPaymentDate@0 using utf8mb3),current_timestamp()) AS `CONCAT(v_LastPaymentDate, NOW())`
DROP PROCEDURE p1;
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
@@ -5363,7 +5363,7 @@ DROP TABLE t1;
#
SELECT @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
SELECT CASE 1 WHEN 2 THEN ( - '3' ) END;
CASE 1 WHEN 2 THEN ( - '3' ) END
NULL
@@ -5416,14 +5416,14 @@ EXPLAIN EXTENDED SELECT 'abcdÃÂÃÄÅ', _latin1'abcdÃÂÃÄÅ', _utf8'abcdÃÃ
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select 'abcdÃ\0081ÂÃÄÅ' AS `abcdÃ\0081ÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃ\0081ÂÃÄÅ`,_utf8'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `u`
+Note 1003 select 'abcdÃ\0081ÂÃÄÅ' AS `abcdÃ\0081ÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃ\0081ÂÃÄÅ`,_utf8mb3'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `u`
# Test normal utf8
SET NAMES utf8;
EXPLAIN EXTENDED SELECT 'abcdÃÂÃÄÅ', _latin1'abcdÃÂÃÄÅ', _utf8'abcdÃÂÃÄÅ';
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select 'abcdÃÂÃÄÅ' AS `abcdÃÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃ\0081ÂÃÄÅ`,_utf8'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃÂÃÄÅ`
+Note 1003 select 'abcdÃÂÃÄÅ' AS `abcdÃÂÃÄÅ`,_latin1'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃ\0081ÂÃÄÅ`,_utf8mb3'abcd\xC3\x81\xC3\x82\xC3\x83\xC3\x84\xC3\x85' AS `abcdÃÂÃÄÅ`
#
# Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
#
@@ -5464,7 +5464,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
@@ -5683,7 +5683,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
@@ -5902,7 +5902,7 @@ ADD KEY(ch);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `ch` varchar(60) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `ch` (`ch`)
@@ -6142,11 +6142,11 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c0` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c2` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c3` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c4` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c0` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c1` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c2` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c3` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c4` varchar(19) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT * FROM t2;
c0 c1 c2 c3 c4
@@ -6219,20 +6219,20 @@ HEX(i) HEX(CHAR(i USING utf8))
131F197 NULL
1326A35 01326A35
Warnings:
-Warning 1300 Invalid utf8 character string: 'F197'
+Warning 1300 Invalid utf8mb3 character string: 'F197'
SET sql_mode='STRICT_ALL_TABLES';
SELECT HEX(i), HEX(CHAR(i USING utf8)) FROM t1;
HEX(i) HEX(CHAR(i USING utf8))
131F197 NULL
1326A35 01326A35
Warnings:
-Warning 1300 Invalid utf8 character string: 'F197'
+Warning 1300 Invalid utf8mb3 character string: 'F197'
SELECT CHAR(i USING utf8) FROM t1;
CHAR(i USING utf8)
###
###
Warnings:
-### 1300 Invalid utf8 character string: 'F197'
+### 1300 Invalid utf8mb3 character string: 'F197'
SET sql_mode=DEFAULT;
DROP TABLE t1;
#
@@ -6271,12 +6271,12 @@ SET sql_mode=default;
set names utf8;
select @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
CREATE TABLE t1 AS SELECT 'a' AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -6296,7 +6296,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -6412,7 +6412,7 @@ hex(weight_string('abc',25, 4, 0xC0))
00410042004300200020002000200020002000200020002000
select @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
select hex(weight_string(cast(_latin1 0x80 as char)));
hex(weight_string(cast(_latin1 0x80 as char)))
20AC
@@ -6484,7 +6484,7 @@ hex(weight_string(cast(_latin1 0x808080 as char),25, 4, 0xC0))
20AC20AC20AC00200020002000200020002000200020002000
select @@collation_connection;
@@collation_connection
-utf8_general_ci
+utf8mb3_general_ci
select hex(weight_string('a' LEVEL 1));
hex(weight_string('a' LEVEL 1))
0041
@@ -6515,12 +6515,12 @@ DFFFDFFFBCFFBDFFBEFF
set @@collation_connection=utf8_bin;
select @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
CREATE TABLE t1 AS SELECT 'a' AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
+ `a` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -6540,7 +6540,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `a` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1;
SHOW CREATE TABLE t2;
@@ -6656,7 +6656,7 @@ hex(weight_string('abc',25, 4, 0xC0))
00610062006300200020002000200020002000200020002000
select @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
select hex(weight_string(cast(_latin1 0x80 as char)));
hex(weight_string(cast(_latin1 0x80 as char)))
20AC
@@ -6728,7 +6728,7 @@ hex(weight_string(cast(_latin1 0x808080 as char),25, 4, 0xC0))
20AC20AC20AC00200020002000200020002000200020002000
select @@collation_connection;
@@collation_connection
-utf8_bin
+utf8mb3_bin
select hex(weight_string('a' LEVEL 1));
hex(weight_string('a' LEVEL 1))
0061
@@ -6794,7 +6794,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE CONCAT(c1)='a';
@@ -6817,7 +6817,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE 'a'=CONCAT(c1);
@@ -6840,7 +6840,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '% '=CONCAT(c1);
@@ -6863,7 +6863,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '%'=CONCAT(c1);
@@ -6889,7 +6889,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ';
@@ -6915,7 +6915,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE CONCAT(c1)='a';
@@ -6938,7 +6938,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT * FROM t1 WHERE 'a'=CONCAT(c1);
@@ -6961,7 +6961,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '% '=CONCAT(c1);
@@ -6984,7 +6984,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('%'),('% ');
SELECT * FROM t1 WHERE '%'=CONCAT(c1);
@@ -7010,7 +7010,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a'),('a ');
SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ';
@@ -7035,7 +7035,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('ae'),('ä');
SELECT * FROM t1 WHERE c1='ä';
@@ -7071,17 +7071,17 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8);
INSERT INTO t1 VALUES ('a');
SELECT CONCAT(a,0xFF) FROM t1;
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
SELECT CONCAT(a,0xC3BF) FROM t1;
CONCAT(a,0xC3BF)
aÿ
DROP TABLE t1;
SELECT CONCAT('a' COLLATE utf8_unicode_ci, _binary 0xFF);
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
PREPARE stmt FROM "SELECT CONCAT('a' COLLATE utf8_unicode_ci, ?)";
SET @arg00=_binary 0xFF;
EXECUTE stmt USING @arg00;
-ERROR HY000: Invalid utf8 character string: 'FF'
+ERROR HY000: Invalid utf8mb3 character string: 'FF'
DEALLOCATE PREPARE stmt;
SET NAMES latin1;
PREPARE stmt FROM "SELECT CONCAT(_utf8'a' COLLATE utf8_unicode_ci, ?)";
@@ -7156,7 +7156,7 @@ CONCAT(b,IF(a,?,?))
a
SET @b='Ñ';
EXECUTE stmt USING @b,@b;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
#
@@ -7171,7 +7171,7 @@ SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_s
PREPARE stmt FROM @query;
EXECUTE stmt;
CHARSET('test') @@character_set_client @@character_set_connection
-utf8 utf8 utf8
+utf8mb3 utf8mb3 utf8mb3
DEALLOCATE PREPARE stmt;
CREATE TABLE allbytes (a VARBINARY(10));
# Using selected bytes combinations
@@ -7238,7 +7238,7 @@ CALL p1(val);
END LOOP;
CLOSE stmt;
END//
-CREATE FUNCTION iswellformed(a VARBINARY(256)) RETURNS INT RETURN a=BINARY CONVERT(a USING utf8);//
+CREATE FUNCTION iswellformed(a VARBINARY(256)) RETURNS INT RETURN a=BINARY CONVERT(a USING utf8mb3);//
CREATE FUNCTION unescape(a VARBINARY(256)) RETURNS VARBINARY(256)
BEGIN
# We need to do it in a way to avoid producing new escape sequences
@@ -10241,7 +10241,7 @@ CHAR(0xDF USING latin1)
CREATE OR REPLACE VIEW v1 AS SELECT CHAR(0xDF USING latin1) AS c;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select char(0xdf using latin1) AS `c` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select char(0xdf using latin1) AS `c` utf8mb3 utf8mb3_general_ci
SELECT * FROM v1;
c
ß
@@ -10256,7 +10256,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS t LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `t` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `t` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('abcdefghi'),('ABCDEFGHI');
SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT LOWER(t) t2 FROM t1) sub;
@@ -10280,7 +10280,7 @@ SET optimizer_switch=@save_optimizer_switch;
#
SET NAMES utf8;
SELECT * FROM `testðŸ˜ðŸ˜test`;
-ERROR HY000: Invalid utf8 character string: 'test\xF0\x9F\x98\x81\xF0\x9F\x98\x81test'
+ERROR HY000: Invalid utf8mb3 character string: 'test\xF0\x9F\x98\x81\xF0\x9F\x98\x81test'
#
#MDEV-8256 A part of a ROW comparison is erroneously optimized away
#
@@ -10508,23 +10508,23 @@ SELECT CONVERT(_utf8 0xC499 USING latin1);
CONVERT(_utf8 0xC499 USING latin1)
?
Warnings:
-Warning 1977 Cannot convert 'utf8' character 0xC499 to 'latin1'
+Warning 1977 Cannot convert 'utf8mb3' character 0xC499 to 'latin1'
SELECT CAST(_utf8 0xC499 AS CHAR CHARACTER SET latin1);
CAST(_utf8 0xC499 AS CHAR CHARACTER SET latin1)
?
Warnings:
-Warning 1977 Cannot convert 'utf8' character 0xC499 to 'latin1'
+Warning 1977 Cannot convert 'utf8mb3' character 0xC499 to 'latin1'
SET sql_mode=default;
SELECT CONVERT(_utf8 0xC499 USING latin1);
CONVERT(_utf8 0xC499 USING latin1)
?
Warnings:
-Warning 1977 Cannot convert 'utf8' character 0xC499 to 'latin1'
+Warning 1977 Cannot convert 'utf8mb3' character 0xC499 to 'latin1'
SELECT CAST(_utf8 0xC499 AS CHAR CHARACTER SET latin1);
CAST(_utf8 0xC499 AS CHAR CHARACTER SET latin1)
?
Warnings:
-Warning 1977 Cannot convert 'utf8' character 0xC499 to 'latin1'
+Warning 1977 Cannot convert 'utf8mb3' character 0xC499 to 'latin1'
#
# MDEV-15005 ASAN: stack-buffer-overflow in my_strnncollsp_simple
#
@@ -10655,7 +10655,7 @@ SET NAMES utf8;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT concat('ß')
+ `a` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT concat('ß')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (DEFAULT);
SELECT HEX(a), a FROM t1;
@@ -10679,7 +10679,7 @@ CREATE TABLE t1 (a VARCHAR(30) CHARACTER SET utf8 DEFAULT CONCAT('ß'));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT concat('ß')
+ `a` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT concat('ß')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (DEFAULT);
SELECT HEX(a) FROM t1;
@@ -10702,7 +10702,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_nopad_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -10840,7 +10840,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_nopad_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -10979,7 +10979,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_nopad_bin
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_nopad_bin
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -11117,7 +11117,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_nopad_bin
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_nopad_bin
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -11396,7 +11396,7 @@ UNIQUE KEY(a) USING HASH
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` char(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11413,7 +11413,7 @@ UNIQUE KEY(a(10)) USING HASH
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` char(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`(10)) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11430,7 +11430,7 @@ UNIQUE KEY(a) USING HASH
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11447,7 +11447,7 @@ UNIQUE KEY(a(10)) USING HASH
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`(10)) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11461,7 +11461,7 @@ CREATE TABLE t1 (a TEXT COLLATE utf8mb3_general_ci UNIQUE);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11478,7 +11478,7 @@ UNIQUE KEY(a(10)) USING HASH
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`(10)) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES ('a');
@@ -11491,7 +11491,7 @@ DROP TABLE t1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT a, OCTET_LENGTH(a) FROM t1 ORDER BY BINARY a;
@@ -11524,7 +11524,7 @@ DROP TABLE t1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT a, OCTET_LENGTH(a) FROM t1 ORDER BY BINARY a;
@@ -11539,7 +11539,7 @@ DROP TABLE t1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT a, OCTET_LENGTH(a) FROM t1 ORDER BY BINARY a;
diff --git a/mysql-test/main/ctype_utf8.test b/mysql-test/main/ctype_utf8.test
index 3461a5cb206..c39a9bbb8f4 100644
--- a/mysql-test/main/ctype_utf8.test
+++ b/mysql-test/main/ctype_utf8.test
@@ -8,7 +8,7 @@
let $MYSQLD_DATADIR= `select @@datadir`;
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
SET TIME_ZONE='+03:00';
diff --git a/mysql-test/main/ctype_utf8_def_upgrade.result b/mysql-test/main/ctype_utf8_def_upgrade.result
index 85d017e0e48..d30f8670536 100644
--- a/mysql-test/main/ctype_utf8_def_upgrade.result
+++ b/mysql-test/main/ctype_utf8_def_upgrade.result
@@ -52,11 +52,11 @@ SET @@character_set_database=DEFAULT;
# Emulate a pre-4.1 database without db.opt
SHOW CREATE DATABASE db1;
Database Create Database
-db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
USE db1;
SELECT @@character_set_database, 'taken from defaults' AS comment;
@@character_set_database comment
-utf8 taken from defaults
+utf8mb3 taken from defaults
USE test;
ALTER DATABASE db1 DEFAULT CHARACTER SET latin1;
USE db1;
diff --git a/mysql-test/main/ctype_utf8_uca.result b/mysql-test/main/ctype_utf8_uca.result
index 7475eb5d8c9..d5a2950747e 100644
--- a/mysql-test/main/ctype_utf8_uca.result
+++ b/mysql-test/main/ctype_utf8_uca.result
@@ -18,7 +18,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_nopad_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -156,7 +156,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_nopad_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -295,7 +295,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_520_nopad_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_520_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -433,7 +433,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) NOT NULL,
PRIMARY KEY (`a`)
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_520_nopad_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_520_nopad_ci
INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a ');
SELECT HEX(a), a FROM t1 ORDER BY a;
HEX(a) a
@@ -568,8 +568,8 @@ ALTER TABLE t1 ADD KEY(a), ADD KEY(b);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci DEFAULT NULL,
- `b` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci DEFAULT NULL,
+ `a` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_nopad_ci DEFAULT NULL,
+ `b` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_nopad_ci DEFAULT NULL,
KEY `a` (`a`),
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
@@ -599,7 +599,7 @@ SHOW CREATE TABLE case_folding;
Table Create Table
case_folding CREATE TABLE `case_folding` (
`code` int(1) NOT NULL,
- `c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL
+ `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code) VALUES
(0x23A),
@@ -632,7 +632,7 @@ SHOW CREATE TABLE case_folding;
Table Create Table
case_folding CREATE TABLE `case_folding` (
`code` int(1) NOT NULL,
- `c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_520_ci DEFAULT NULL
+ `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_520_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code) VALUES
(0x23A),
@@ -665,7 +665,7 @@ SHOW CREATE TABLE case_folding;
Table Create Table
case_folding CREATE TABLE `case_folding` (
`code` int(1) NOT NULL,
- `c` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_520_nopad_ci DEFAULT NULL
+ `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_520_nopad_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code) VALUES
(0x23A),
@@ -698,7 +698,7 @@ SHOW CREATE TABLE case_folding;
Table Create Table
case_folding CREATE TABLE `case_folding` (
`code` int(1) NOT NULL,
- `c` varchar(32) CHARACTER SET utf8 COLLATE utf8_myanmar_ci DEFAULT NULL
+ `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_myanmar_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code) VALUES
(0x23A),
@@ -731,7 +731,7 @@ SHOW CREATE TABLE case_folding;
Table Create Table
case_folding CREATE TABLE `case_folding` (
`code` int(1) NOT NULL,
- `c` varchar(32) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL
+ `c` varchar(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_thai_520_w2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO case_folding (code) VALUES
(0x23A),
diff --git a/mysql-test/main/ctype_utf8mb4.result b/mysql-test/main/ctype_utf8mb4.result
index 658db490ef5..834e1c8e859 100644
--- a/mysql-test/main/ctype_utf8mb4.result
+++ b/mysql-test/main/ctype_utf8mb4.result
@@ -1849,7 +1849,7 @@ character_set_database latin1
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
-character_set_system utf8
+character_set_system utf8mb3
SET @@character_set_server=@save_character_set_server;
CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
USE crashtest;
@@ -2066,7 +2066,7 @@ select concat(a, if(b>10, N'x', N'y')) from t1;
concat(a, if(b>10, N'x', N'y'))
ay
select concat(a, if(b>10, N'æ', N'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8mb4;
create table t1 (a varchar(10) character set latin1, b int);
@@ -2553,7 +2553,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1;
u_decimal hex(utf8mb4_encoding) utf8mb4_encoding
119040 3F ?
@@ -2586,7 +2586,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
42856 EA9DA8
@@ -2598,7 +2598,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
119040 3F
@@ -2619,7 +2619,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
119040 3F
@@ -2640,7 +2640,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
42856 EA9DA8
@@ -2686,7 +2686,7 @@ SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
`utf8mb4` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
- `utf8mb3` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `utf8mb3` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TEMPORARY TABLE t3;
@@ -2706,9 +2706,9 @@ DROP TABLE t2;
CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4);
INSERT INTO t1 VALUES (x'f48fbfbf');
SELECT CONCAT(utf8mb4, _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
SELECT CONCAT('a', _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
DROP TABLE t1;
#
# Bug#51675 Server crashes on inserting 4 byte char.
@@ -2733,7 +2733,7 @@ t1 CREATE TABLE `t1` (
`subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`p` varchar(255) DEFAULT NULL,
KEY `subject` (`subject`(250))
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
INSERT INTO t1(subject) VALUES ('abcd');
INSERT INTO t1(subject) VALUES(x'f0909080');
DROP TABLE t1;
diff --git a/mysql-test/main/ctype_utf8mb4_heap.result b/mysql-test/main/ctype_utf8mb4_heap.result
index 6dead2c2190..657f06366e3 100644
--- a/mysql-test/main/ctype_utf8mb4_heap.result
+++ b/mysql-test/main/ctype_utf8mb4_heap.result
@@ -1681,7 +1681,7 @@ character_set_database latin1
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
-character_set_system utf8
+character_set_system utf8mb3
SET @@character_set_server=@save_character_set_server;
CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
USE crashtest;
@@ -1898,7 +1898,7 @@ select concat(a, if(b>10, N'x', N'y')) from t1;
concat(a, if(b>10, N'x', N'y'))
ay
select concat(a, if(b>10, N'æ', N'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8mb4;
create table t1 (a varchar(10) character set latin1, b int) engine heap;
@@ -2354,7 +2354,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1;
u_decimal hex(utf8mb4_encoding) utf8mb4_encoding
1114111 3F ?
@@ -2387,7 +2387,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2399,7 +2399,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) DEFAULT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2420,7 +2420,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2441,7 +2441,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2487,7 +2487,7 @@ SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
`utf8mb4` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
- `utf8mb3` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `utf8mb3` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TEMPORARY TABLE t3;
@@ -2507,9 +2507,9 @@ DROP TABLE t2;
CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4) ENGINE heap;
INSERT INTO t1 VALUES (x'f48fbfbf');
SELECT CONCAT(utf8mb4, _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
SELECT CONCAT('a', _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_utf8mb4_innodb-master.opt b/mysql-test/main/ctype_utf8mb4_innodb-master.opt
index 96f0ce3f36c..d1dc9a3e00f 100644
--- a/mysql-test/main/ctype_utf8mb4_innodb-master.opt
+++ b/mysql-test/main/ctype_utf8mb4_innodb-master.opt
@@ -1 +1,2 @@
--default-storage-engine=MyISAM
+--innodb-stats-persistent=OFF
diff --git a/mysql-test/main/ctype_utf8mb4_innodb.result b/mysql-test/main/ctype_utf8mb4_innodb.result
index 5a21d7522b9..da6a465647e 100644
--- a/mysql-test/main/ctype_utf8mb4_innodb.result
+++ b/mysql-test/main/ctype_utf8mb4_innodb.result
@@ -1807,7 +1807,7 @@ character_set_database latin1
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
-character_set_system utf8
+character_set_system utf8mb3
SET @@character_set_server=@save_character_set_server;
CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
USE crashtest;
@@ -2024,7 +2024,7 @@ select concat(a, if(b>10, N'x', N'y')) from t1;
concat(a, if(b>10, N'x', N'y'))
ay
select concat(a, if(b>10, N'æ', N'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8mb4;
create table t1 (a varchar(10) character set latin1, b int) engine InnoDB;
@@ -2497,7 +2497,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1;
u_decimal hex(utf8mb4_encoding) utf8mb4_encoding
1114111 3F ?
@@ -2530,7 +2530,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2542,7 +2542,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2563,7 +2563,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2584,7 +2584,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2630,7 +2630,7 @@ SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
`utf8mb4` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
- `utf8mb3` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `utf8mb3` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TEMPORARY TABLE t3;
@@ -2650,9 +2650,9 @@ DROP TABLE t2;
CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4) ENGINE InnoDB;
INSERT INTO t1 VALUES (x'f48fbfbf');
SELECT CONCAT(utf8mb4, _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
SELECT CONCAT('a', _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/ctype_utf8mb4_myisam.result b/mysql-test/main/ctype_utf8mb4_myisam.result
index fbcc6613ebb..7e579e609b0 100644
--- a/mysql-test/main/ctype_utf8mb4_myisam.result
+++ b/mysql-test/main/ctype_utf8mb4_myisam.result
@@ -1814,7 +1814,7 @@ character_set_database latin1
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
-character_set_system utf8
+character_set_system utf8mb3
SET @@character_set_server=@save_character_set_server;
CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
USE crashtest;
@@ -2031,7 +2031,7 @@ select concat(a, if(b>10, N'x', N'y')) from t1;
concat(a, if(b>10, N'x', N'y'))
ay
select concat(a, if(b>10, N'æ', N'ß')) from t1;
-ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
drop table t1;
set names utf8mb4;
create table t1 (a varchar(10) character set latin1, b int) engine MyISAM;
@@ -2506,7 +2506,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1;
u_decimal hex(utf8mb4_encoding) utf8mb4_encoding
1114111 3F ?
@@ -2539,7 +2539,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2551,7 +2551,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2572,7 +2572,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`u_decimal` int(11) NOT NULL,
`utf8mb4_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb4_encoding) FROM t1;
u_decimal hex(utf8mb4_encoding)
1114111 3F
@@ -2593,7 +2593,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`u_decimal` int(11) NOT NULL,
`utf8mb3_encoding` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT u_decimal,hex(utf8mb3_encoding) FROM t2;
u_decimal hex(utf8mb3_encoding)
1114111 3F3F3F3F
@@ -2639,7 +2639,7 @@ SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TEMPORARY TABLE `t3` (
`utf8mb4` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
- `utf8mb3` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `utf8mb3` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
`concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TEMPORARY TABLE t3;
@@ -2659,9 +2659,9 @@ DROP TABLE t2;
CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4) ENGINE MyISAM;
INSERT INTO t1 VALUES (x'f48fbfbf');
SELECT CONCAT(utf8mb4, _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
SELECT CONCAT('a', _utf8 '¿') FROM t1;
-ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) for operation 'concat'
+ERROR HY000: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb3_general_ci,COERCIBLE) for operation 'concat'
DROP TABLE t1;
#
# End of 5.5 tests
diff --git a/mysql-test/main/custom_aggregate_functions.result b/mysql-test/main/custom_aggregate_functions.result
index 60bf7cb3bd8..7f2cde1b6fe 100644
--- a/mysql-test/main/custom_aggregate_functions.result
+++ b/mysql-test/main/custom_aggregate_functions.result
@@ -1060,9 +1060,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` tinytext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -1079,9 +1079,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -1098,9 +1098,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -1117,9 +1117,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
diff --git a/mysql-test/main/ddl_i18n_koi8r.result b/mysql-test/main/ddl_i18n_koi8r.result
index 9fd6e2c968f..6504e129693 100644
--- a/mysql-test/main/ddl_i18n_koi8r.result
+++ b/mysql-test/main/ddl_i18n_koi8r.result
@@ -27,11 +27,11 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8mb3'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8mb3'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
@@ -53,7 +53,7 @@ koi8r_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
-utf8_general_ci
+utf8mb3_general_ci
SELECT * FROM v3|
ÔÅÓÔ
@@ -78,11 +78,11 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8mb3'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8mb3'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
@@ -104,7 +104,7 @@ koi8r_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
-utf8_general_ci
+utf8mb3_general_ci
SELECT * FROM v3|
ÔÅÓÔ
@@ -134,11 +134,11 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _utf8mb3'теÑÑ‚' AS `c1` koi8r koi8r_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _utf8mb3'теÑÑ‚' AS `ÔÅÓÔ` koi8r koi8r_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
@@ -160,7 +160,7 @@ koi8r_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
-utf8_general_ci
+utf8mb3_general_ci
SELECT * FROM v3|
ÔÅÓÔ
@@ -277,7 +277,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -298,7 +298,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -319,7 +319,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -340,24 +340,24 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -376,7 +376,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -394,7 +394,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -412,7 +412,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -430,7 +430,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -439,39 +439,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
@@ -482,24 +482,24 @@ SET @@character_set_results= cp1251|
SET @@collation_connection= cp1251_general_ci|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
set names koi8r|
@@ -522,7 +522,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -543,7 +543,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -564,7 +564,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -585,24 +585,24 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -621,7 +621,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -639,7 +639,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -657,7 +657,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -675,7 +675,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -684,39 +684,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
---> Dump of mysqltest1
@@ -725,7 +725,7 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER
USE `mysqltest1`;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -759,7 +759,7 @@ DELIMITER ;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -801,7 +801,7 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER
USE `mysqltest2`;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -835,7 +835,7 @@ DELIMITER ;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -883,24 +883,24 @@ SET @@character_set_results= cp1251|
SET @@collation_connection= cp1251_general_ci|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
set names koi8r|
@@ -923,7 +923,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -944,7 +944,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -965,7 +965,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -986,24 +986,24 @@ COLLATION(_utf8 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -1022,7 +1022,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1040,7 +1040,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1058,7 +1058,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1076,7 +1076,7 @@ COLLATION( 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET ÐÁÒÁÍ1 = 'a';
SET ÐÁÒÁÍ2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -1085,39 +1085,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r
+koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
connection default;
disconnect con2;
disconnect con3;
@@ -1211,7 +1211,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1227,7 +1227,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1243,7 +1243,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1259,7 +1259,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1275,7 +1275,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -1287,7 +1287,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -1304,7 +1304,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -1316,7 +1316,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -1333,7 +1333,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1348,7 +1348,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1363,7 +1363,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1378,7 +1378,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -1402,10 +1402,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1415,7 +1415,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -1433,10 +1433,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1446,7 +1446,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
@@ -1483,7 +1483,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1499,7 +1499,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1515,7 +1515,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1531,7 +1531,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1547,7 +1547,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -1559,7 +1559,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -1576,7 +1576,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -1588,7 +1588,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -1605,7 +1605,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1620,7 +1620,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1635,7 +1635,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1650,7 +1650,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -1674,10 +1674,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1687,7 +1687,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -1705,10 +1705,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1718,7 +1718,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
@@ -1731,16 +1731,16 @@ USE `mysqltest1`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `log` (
`msg` varchar(255) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
`c` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `t1` VALUES (1),(0),(1);
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -1769,7 +1769,7 @@ DELIMITER ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -1810,16 +1810,16 @@ USE `mysqltest2`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `log` (
`msg` varchar(255) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
`c` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `t1` VALUES (1),(0),(1);
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -1848,7 +1848,7 @@ DELIMITER ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
@@ -1917,7 +1917,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1933,7 +1933,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1949,7 +1949,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = _koi8r 'ÔÅËÓÔ';
SET @a2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1965,7 +1965,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = _koi8r 'ÔÅËÓÔ';
SET @b2 = _utf8 'текÑÑ‚';
-END koi8r koi8r_general_ci utf8_unicode_ci #
+END koi8r koi8r_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1981,7 +1981,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -1993,7 +1993,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -2010,7 +2010,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END BEFORE # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END BEFORE # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE ÐÅÒÅÍ1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(ÐÅÒÅÍ1));
@@ -2022,7 +2022,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END AFTER # root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END AFTER # root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -2039,7 +2039,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2054,7 +2054,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2069,7 +2069,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'ÔÅËÓÔ';
SET @a1 = 'ÔÅËÓÔ';
SET @a2 = 'ÔÅËÓÔ';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2084,7 +2084,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'ÔÅËÓÔ';
SET @b1 = 'ÔÅËÓÔ';
SET @b2 = 'ÔÅËÓÔ';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost koi8r koi8r_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -2108,10 +2108,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -2121,7 +2121,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -2139,10 +2139,10 @@ koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
koi8r_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -2152,7 +2152,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-koi8r_general_ci utf8_general_ci koi8r_general_ci koi8r_general_ci utf8_general_ci koi8r_general_ci
+koi8r_general_ci utf8mb3_general_ci koi8r_general_ci koi8r_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
connection default;
@@ -2241,7 +2241,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2254,7 +2254,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2267,7 +2267,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2280,16 +2280,16 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2309,7 +2309,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2322,7 +2322,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2335,7 +2335,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2348,7 +2348,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
@@ -2375,7 +2375,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2388,7 +2388,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2401,7 +2401,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2414,16 +2414,16 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2443,7 +2443,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2456,7 +2456,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2469,7 +2469,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2482,7 +2482,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
---> Dump of mysqltest1
@@ -2491,7 +2491,7 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER
USE `mysqltest1`;
/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
DELIMITER ;;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
@@ -2519,7 +2519,7 @@ END */ ;;
/*!50003 SET collation_connection = @saved_col_connection */ ;;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;;
DELIMITER ;;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
@@ -2558,7 +2558,7 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER
USE `mysqltest2`;
/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
DELIMITER ;;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
@@ -2586,7 +2586,7 @@ END */ ;;
/*!50003 SET collation_connection = @saved_col_connection */ ;;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;;
DELIMITER ;;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
@@ -2647,7 +2647,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2660,7 +2660,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2673,7 +2673,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2686,16 +2686,16 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c3,
COLLATION(_utf8 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END koi8r koi8r_general_ci utf8_unicode_ci
+END koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2715,7 +2715,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2728,7 +2728,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2741,7 +2741,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2754,7 +2754,7 @@ COLLATION( 'ÔÅËÓÔ') AS c3,
COLLATION( 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 koi8r koi8r_general_ci utf8mb3_unicode_ci
-------------------------------------------------------------------
DDL statements within stored routine.
@@ -2782,26 +2782,26 @@ CALL p1()|
Table Create Table
t1 CREATE TABLE `t1` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
SHOW CREATE TABLE t1|
Table Create Table
t1 CREATE TABLE `t1` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
CALL mysqltest2.p2()|
Table Create Table
t2 CREATE TABLE `t2` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
SHOW CREATE TABLE mysqltest2.t2|
Table Create Table
t2 CREATE TABLE `t2` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
diff --git a/mysql-test/main/ddl_i18n_koi8r.test b/mysql-test/main/ddl_i18n_koi8r.test
index 85fc947253b..4f16cbaba6b 100644
--- a/mysql-test/main/ddl_i18n_koi8r.test
+++ b/mysql-test/main/ddl_i18n_koi8r.test
@@ -38,7 +38,7 @@ set sql_mode="";
--source include/have_cp866.inc
--source include/have_cp1251.inc
--source include/have_koi8r.inc
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
###########################################################################
diff --git a/mysql-test/main/ddl_i18n_utf8.result b/mysql-test/main/ddl_i18n_utf8.result
index c2bca0cdf78..35234d4fa23 100644
--- a/mysql-test/main/ddl_i18n_utf8.result
+++ b/mysql-test/main/ddl_i18n_utf8.result
@@ -23,33 +23,33 @@ CREATE VIEW v3 AS SELECT _koi8r'ÔÅÓÔ'|
SHOW CREATE VIEW v1|
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8mb3 utf8mb3_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v3'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT COLLATION(c1), COLLATION(c2) FROM v1|
COLLATION(c1) COLLATION(c2)
-utf8_general_ci binary
+utf8mb3_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
@@ -74,33 +74,33 @@ set names utf8|
SHOW CREATE VIEW v1|
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8mb3 utf8mb3_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v3'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT COLLATION(c1), COLLATION(c2) FROM v1|
COLLATION(c1) COLLATION(c2)
-utf8_general_ci binary
+utf8mb3_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
@@ -130,33 +130,33 @@ set names utf8|
SHOW CREATE VIEW v1|
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `c1`,`t1`.`кол` AS `c2` from `t1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v2|
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select _koi8r'ÔÅÓÔ' AS `c1` utf8mb3 utf8mb3_general_ci
SHOW CREATE VIEW v3|
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select _koi8r'ÔÅÓÔ' AS `теÑÑ‚` utf8mb3 utf8mb3_general_ci
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v1 select 'теÑÑ‚' AS `c1`,`mysqltest1`.`t1`.`кол` AS `c2` from `mysqltest1`.`t1` NONE YES root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v2 select 'теÑÑ‚' AS `c1` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v3'|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
-def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8 utf8_general_ci UNDEFINED
+def mysqltest1 v3 select 'теÑÑ‚' AS `теÑÑ‚` NONE NO root@localhost DEFINER utf8mb3 utf8mb3_general_ci UNDEFINED
SELECT COLLATION(c1), COLLATION(c2) FROM v1|
COLLATION(c1) COLLATION(c2)
-utf8_general_ci binary
+utf8mb3_general_ci binary
SELECT COLLATION(c1) FROM v2|
COLLATION(c1)
@@ -277,7 +277,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -298,7 +298,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -319,7 +319,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -340,24 +340,24 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -376,7 +376,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -394,7 +394,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -412,7 +412,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -430,7 +430,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -439,39 +439,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
@@ -482,24 +482,24 @@ SET @@character_set_results= cp1251|
SET @@collation_connection= cp1251_general_ci|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
set names utf8|
@@ -522,7 +522,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -543,7 +543,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -564,7 +564,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -585,24 +585,24 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -621,7 +621,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -639,7 +639,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -657,7 +657,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -675,7 +675,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -684,39 +684,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
---> Dump of mysqltest1
@@ -725,13 +725,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER
USE `mysqltest1`;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
INOUT парам1 CHAR(10),
@@ -759,13 +759,13 @@ DELIMITER ;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
INOUT парам1 CHAR(10) CHARACTER SET utf8,
@@ -801,13 +801,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER
USE `mysqltest2`;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
INOUT парам1 CHAR(10),
@@ -835,13 +835,13 @@ DELIMITER ;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
INOUT парам1 CHAR(10) CHARACTER SET utf8,
@@ -883,24 +883,24 @@ SET @@character_set_results= cp1251|
SET @@collation_connection= cp1251_general_ci|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
set names utf8|
@@ -923,7 +923,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE p2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -944,7 +944,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p3|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -965,7 +965,7 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE PROCEDURE mysqltest2.p4|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
@@ -986,24 +986,24 @@ COLLATION(_koi8r 'ÔÅËÓÔ') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p1'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p1 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p2'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 p2 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p3'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p3 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW PROCEDURE STATUS LIKE 'p4'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8 utf8_general_ci utf8_unicode_ci
+mysqltest2 p4 PROCEDURE root@localhost MODIFIED CREATED DEFINER utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'|
@@ -1022,7 +1022,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1040,7 +1040,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1058,7 +1058,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'|
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1076,7 +1076,7 @@ COLLATION( 'текÑÑ‚') AS c6,
@@character_set_client AS c8;
SET парам1 = 'a';
SET парам2 = 'b';
-END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END NULL NULL SQL NO CONTAINS SQL NULL DEFINER CREATED ALTERED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a = '1'|
@@ -1085,39 +1085,39 @@ SET @b = '2'|
CALL p1(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL p2(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
CALL mysqltest2.p3(@a, @b)|
c1 c2 c3
-utf8_unicode_ci utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci utf8mb3_unicode_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_unicode_ci utf8_unicode_ci
+utf8mb3_unicode_ci utf8mb3_unicode_ci
CALL mysqltest2.p4(@a, @b)|
c1 c2 c3
-utf8_general_ci utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci utf8mb3_general_ci
c4 c5 c6 c7 c8
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3
SELECT COLLATION(@a) AS ca, COLLATION(@b) cb|
ca cb
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
connection default;
disconnect con2;
disconnect con3;
@@ -1211,7 +1211,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1227,7 +1227,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1243,7 +1243,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1259,7 +1259,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1275,7 +1275,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -1287,7 +1287,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -1304,7 +1304,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -1316,7 +1316,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -1333,7 +1333,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1348,7 +1348,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1363,7 +1363,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1378,7 +1378,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -1396,16 +1396,16 @@ SELECT msg FROM log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1415,7 +1415,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -1427,16 +1427,16 @@ SELECT msg FROM mysqltest2.log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1446,7 +1446,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
@@ -1483,7 +1483,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1499,7 +1499,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1515,7 +1515,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1531,7 +1531,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1547,7 +1547,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -1559,7 +1559,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -1576,7 +1576,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -1588,7 +1588,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -1605,7 +1605,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1620,7 +1620,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1635,7 +1635,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -1650,7 +1650,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -1668,16 +1668,16 @@ SELECT msg FROM log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1687,7 +1687,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -1699,16 +1699,16 @@ SELECT msg FROM mysqltest2.log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -1718,7 +1718,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
@@ -1731,22 +1731,22 @@ USE `mysqltest1`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `log` (
`msg` varchar(255) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
`c` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `t1` VALUES (1),(0),(1);
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
@@ -1769,13 +1769,13 @@ DELIMITER ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
@@ -1810,22 +1810,22 @@ USE `mysqltest2`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `log` (
`msg` varchar(255) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
`c` int(11) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `t1` VALUES (1),(0),(1);
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
@@ -1848,13 +1848,13 @@ DELIMITER ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
@@ -1917,7 +1917,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER trg2|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1933,7 +1933,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg3|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1949,7 +1949,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = _utf8 'текÑÑ‚';
SET @a3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW CREATE TRIGGER mysqltest2.trg4|
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
@@ -1965,7 +1965,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = _utf8 'текÑÑ‚';
SET @b3 = _koi8r 'ÔÅËÓÔ';
-END utf8 utf8_general_ci utf8_unicode_ci #
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci #
SHOW TRIGGERS|
@@ -1981,7 +1981,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg2 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -1993,7 +1993,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest2|
@@ -2010,7 +2010,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END BEFORE # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END BEFORE # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
trg4 INSERT t1 BEGIN
DECLARE перем1 CHAR(10) CHARACTER SET utf8;
INSERT INTO log VALUES(COLLATION(перем1));
@@ -2022,7 +2022,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END AFTER # root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END AFTER # root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
use mysqltest1|
@@ -2039,7 +2039,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2054,7 +2054,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2069,7 +2069,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @a1 = 'текÑÑ‚';
SET @a2 = 'текÑÑ‚';
SET @a3 = 'текÑÑ‚';
-END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW BEFORE NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2084,7 +2084,7 @@ INSERT INTO log VALUES(@@character_set_client);
SET @b1 = 'текÑÑ‚';
SET @b2 = 'текÑÑ‚';
SET @b3 = 'текÑÑ‚';
-END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8 utf8_general_ci utf8_unicode_ci
+END ROW AFTER NULL NULL OLD NEW CREATED root@localhost utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SET @a1 = '1'|
@@ -2102,16 +2102,16 @@ SELECT msg FROM log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -2121,7 +2121,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM log|
@@ -2133,16 +2133,16 @@ SELECT msg FROM mysqltest2.log|
msg
koi8r_general_ci
koi8r_general_ci
-utf8
-utf8
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_general_ci
-utf8_unicode_ci
+utf8mb3
+utf8mb3
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_general_ci
+utf8mb3_unicode_ci
SELECT
COLLATION(@a1) AS ca1,
@@ -2152,7 +2152,7 @@ COLLATION(@b1) AS cb1,
COLLATION(@b2) AS cb2,
COLLATION(@b3) AS cb3|
ca1 ca2 ca3 cb1 cb2 cb3
-utf8_general_ci utf8_general_ci koi8r_general_ci utf8_general_ci utf8_general_ci koi8r_general_ci
+utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci utf8mb3_general_ci utf8mb3_general_ci koi8r_general_ci
DELETE FROM mysqltest2.log|
connection default;
@@ -2241,7 +2241,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2254,7 +2254,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2267,7 +2267,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2280,16 +2280,16 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2309,7 +2309,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2322,7 +2322,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2335,7 +2335,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2348,7 +2348,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
ALTER DATABASE mysqltest1 COLLATE cp866_general_ci|
@@ -2375,7 +2375,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2388,7 +2388,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2401,7 +2401,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2414,16 +2414,16 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2443,7 +2443,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2456,7 +2456,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2469,7 +2469,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2482,7 +2482,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
---> Dump of mysqltest1
@@ -2491,13 +2491,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1` /*!40100 DEFAULT CHARACTER
USE `mysqltest1`;
/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
DELIMITER ;;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
-/*!50003 SET character_set_client = utf8 */ ;;
-/*!50003 SET character_set_results = utf8 */ ;;
-/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET character_set_client = utf8mb3 */ ;;
+/*!50003 SET character_set_results = utf8mb3 */ ;;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
/*!50003 SET sql_mode = '' */ ;;
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
@@ -2519,13 +2519,13 @@ END */ ;;
/*!50003 SET collation_connection = @saved_col_connection */ ;;
ALTER DATABASE `mysqltest1` CHARACTER SET cp866 COLLATE cp866_general_ci ;;
DELIMITER ;;
-ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest1` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
-/*!50003 SET character_set_client = utf8 */ ;;
-/*!50003 SET character_set_results = utf8 */ ;;
-/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET character_set_client = utf8mb3 */ ;;
+/*!50003 SET character_set_results = utf8mb3 */ ;;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
/*!50003 SET sql_mode = '' */ ;;
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
@@ -2558,13 +2558,13 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest2` /*!40100 DEFAULT CHARACTER
USE `mysqltest2`;
/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;
DELIMITER ;;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
-/*!50003 SET character_set_client = utf8 */ ;;
-/*!50003 SET character_set_results = utf8 */ ;;
-/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET character_set_client = utf8mb3 */ ;;
+/*!50003 SET character_set_results = utf8mb3 */ ;;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
/*!50003 SET sql_mode = '' */ ;;
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
@@ -2586,13 +2586,13 @@ END */ ;;
/*!50003 SET collation_connection = @saved_col_connection */ ;;
ALTER DATABASE `mysqltest2` CHARACTER SET cp866 COLLATE cp866_general_ci ;;
DELIMITER ;;
-ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;;
+ALTER DATABASE `mysqltest2` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;;
-/*!50003 SET character_set_client = utf8 */ ;;
-/*!50003 SET character_set_results = utf8 */ ;;
-/*!50003 SET collation_connection = utf8_general_ci */ ;;
+/*!50003 SET character_set_client = utf8mb3 */ ;;
+/*!50003 SET character_set_results = utf8mb3 */ ;;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;
/*!50003 SET sql_mode = '' */ ;;
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
@@ -2647,7 +2647,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT ev2|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2660,7 +2660,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2673,7 +2673,7 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW CREATE EVENT mysqltest2.ev3|
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
@@ -2686,16 +2686,16 @@ COLLATION(_utf8 'текÑÑ‚') AS c3,
COLLATION(_koi8r 'ÔÅËÓÔ') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END utf8 utf8_general_ci utf8_unicode_ci
+END utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev1'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev1 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev2'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
-mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8 utf8_general_ci utf8_unicode_ci
+mysqltest1 ev2 root@localhost SYSTEM ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SHOW EVENTS LIKE 'ev3'|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
@@ -2715,7 +2715,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2728,7 +2728,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2741,7 +2741,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER TIME_ZONE EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD SQL_MODE STARTS ENDS STATUS ON_COMPLETION CREATED LAST_ALTERED LAST_EXECUTED EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
@@ -2754,7 +2754,7 @@ COLLATION( 'текÑÑ‚') AS c3,
COLLATION( 'текÑÑ‚') AS c4,
@@collation_connection AS c5,
@@character_set_client AS c6;
-END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8 utf8_general_ci utf8_unicode_ci
+END ONE TIME 1970-01-02 00:00:00 NULL NULL NULL NULL DISABLED PRESERVE CREATED LAST_ALTERED NULL 1 utf8mb3 utf8mb3_general_ci utf8mb3_unicode_ci
-------------------------------------------------------------------
DDL statements within stored routine.
@@ -2782,26 +2782,26 @@ CALL p1()|
Table Create Table
t1 CREATE TABLE `t1` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
SHOW CREATE TABLE t1|
Table Create Table
t1 CREATE TABLE `t1` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
CALL mysqltest2.p2()|
Table Create Table
t2 CREATE TABLE `t2` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
SHOW CREATE TABLE mysqltest2.t2|
Table Create Table
t2 CREATE TABLE `t2` (
`col1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
diff --git a/mysql-test/main/ddl_i18n_utf8.test b/mysql-test/main/ddl_i18n_utf8.test
index 3e0b28dd191..1f9690e7dac 100644
--- a/mysql-test/main/ddl_i18n_utf8.test
+++ b/mysql-test/main/ddl_i18n_utf8.test
@@ -38,7 +38,7 @@ set sql_mode="";
--source include/have_cp866.inc
--source include/have_cp1251.inc
--source include/have_koi8r.inc
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
###########################################################################
diff --git a/mysql-test/main/debug_sync.result b/mysql-test/main/debug_sync.result
index bb9ae1a417d..4c1711a6d6b 100644
--- a/mysql-test/main/debug_sync.result
+++ b/mysql-test/main/debug_sync.result
@@ -2,7 +2,7 @@ SET DEBUG_SYNC= 'RESET';
DROP TABLE IF EXISTS t1;
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: ''
+debug_sync ON - current signals: ''
SET DEBUG_SYNC='p0 SIGNAL s1 WAIT_FOR s2 TIMEOUT 6 EXECUTE 2 HIT_LIMIT 3';
SET DEBUG_SYNC='p0 SIGNAL s1 WAIT_FOR s2 TIMEOUT 6 EXECUTE 2';
SET DEBUG_SYNC='p0 SIGNAL s1 WAIT_FOR s2 TIMEOUT 6 HIT_LIMIT 3';
@@ -150,34 +150,34 @@ SET @myvar= 'now SIGNAL from_myvar';
SET DEBUG_SYNC= @myvar;
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 'from_myvar'
+debug_sync ON - current signals: 'from_myvar'
SET DEBUG_SYNC= LEFT('now SIGNAL from_function_cut_here', 24);
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 'from_function'
+debug_sync ON - current signals: 'from_myvar,from_function'
SET DEBUG_SYNC= 'now SIGNAL something';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 'something'
+debug_sync ON - current signals: 'something,from_function,from_myvar'
SET DEBUG_SYNC= 'now WAIT_FOR nothing TIMEOUT 0';
Warnings:
Warning #### debug sync point wait timed out
SET DEBUG_SYNC= 'now SIGNAL nothing';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 'nothing'
+debug_sync ON - current signals: 'something,from_function,nothing,from_myvar'
SET DEBUG_SYNC= 'now WAIT_FOR nothing TIMEOUT 0';
SET DEBUG_SYNC= 'now SIGNAL something EXECUTE 0';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 'nothing'
+debug_sync ON - current signals: 'something,from_function,from_myvar'
SET DEBUG_SYNC= 'now WAIT_FOR anotherthing TIMEOUT 0 EXECUTE 0';
SET DEBUG_SYNC= 'now HIT_LIMIT 1';
ERROR HY000: debug sync point hit limit reached
SET DEBUG_SYNC= 'RESET';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: ''
+debug_sync ON - current signals: ''
SET DEBUG_SYNC= 'p1abcd SIGNAL s1 EXECUTE 2';
SET DEBUG_SYNC= 'p2abc SIGNAL s2 EXECUTE 2';
SET DEBUG_SYNC= 'p9abcdef SIGNAL s9 EXECUTE 2';
@@ -190,23 +190,30 @@ SET DEBUG_SYNC= 'p3abcdef SIGNAL s3 EXECUTE 2';
SET DEBUG_SYNC= 'p4a TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's4'
+debug_sync ON - current signals: 's4'
SET DEBUG_SYNC= 'p1abcd TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's1'
+debug_sync ON - current signals: 's4,s1'
SET DEBUG_SYNC= 'p7 TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's7'
+debug_sync ON - current signals: 's1,s7,s4'
SET DEBUG_SYNC= 'p9abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's9'
+debug_sync ON - current signals: 's1,s7,s4,s9'
SET DEBUG_SYNC= 'p3abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's3'
+debug_sync ON - current signals: 's1,s3,s4,s9,s7'
+SET DEBUG_SYNC= 'now WAIT_FOR s9';
+SET DEBUG_SYNC= 'now WAIT_FOR s1';
+SET DEBUG_SYNC= 'now WAIT_FOR s4';
+SET DEBUG_SYNC= 'now WAIT_FOR s7';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+Variable_name Value
+debug_sync ON - current signals: 's3'
SET DEBUG_SYNC= 'p1abcd CLEAR';
SET DEBUG_SYNC= 'p2abc CLEAR';
SET DEBUG_SYNC= 'p5abcde CLEAR';
@@ -219,19 +226,19 @@ SET DEBUG_SYNC= 'p7 CLEAR';
SET DEBUG_SYNC= 'p1abcd TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's3'
+debug_sync ON - current signals: 's3'
SET DEBUG_SYNC= 'p7 TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's3'
+debug_sync ON - current signals: 's3'
SET DEBUG_SYNC= 'p9abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: 's3'
+debug_sync ON - current signals: 's3'
SET DEBUG_SYNC= 'RESET';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
Variable_name Value
-debug_sync ON - current signal: ''
+debug_sync ON - current signals: ''
CREATE USER mysqltest_1@localhost;
GRANT SUPER ON *.* TO mysqltest_1@localhost;
connect con1,localhost,mysqltest_1,,;
@@ -292,4 +299,24 @@ disconnect con1;
disconnect con2;
connection default;
DROP TABLE t1;
+#
+# Test NO_CLEAR_EVENT flag. The signal should still be visible after
+# the wait has completed succesfully.
+#
+SET DEBUG_SYNC= 'now SIGNAL s1';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+Variable_name Value
+debug_sync ON - current signals: 's1'
+SET DEBUG_SYNC= 'now WAIT_FOR s1 NO_CLEAR_EVENT';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+Variable_name Value
+debug_sync ON - current signals: 's1'
+SET DEBUG_SYNC= 'now WAIT_FOR s1';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+Variable_name Value
+debug_sync ON - current signals: ''
+SET DEBUG_SYNC= 'now SIGNAL s1,s2,s5,s7';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+Variable_name Value
+debug_sync ON - current signals: 's2,s7,s1,s5'
SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/main/debug_sync.test b/mysql-test/main/debug_sync.test
index 89414939f59..6e75ba9624c 100644
--- a/mysql-test/main/debug_sync.test
+++ b/mysql-test/main/debug_sync.test
@@ -231,15 +231,12 @@ SHOW VARIABLES LIKE 'DEBUG_SYNC';
# immediately after setting of the DEBUG_SYNC variable.
# So it is executed before the SET statement ends.
#
-# NOTE: There is only one global signal (say "signal post" or "flag mast").
-# A SIGNAL action writes its signal into it ("sets a flag").
-# The signal persists until explicitly overwritten.
+# NOTE: There can be multiple active signals at the same time.
+# A SIGNAL action appends its signal into signals set.
+# The signal persists until waited on.
# To avoid confusion for later tests, it is recommended to clear
-# the signal by signalling "empty" ("setting the 'empty' flag"):
-# SET DEBUG_SYNC= 'now SIGNAL empty';
-# Preferably you can reset the whole facility with:
+# the signal set by running
# SET DEBUG_SYNC= 'RESET';
-# The signal is then '' (really empty) which connot be done otherwise.
#
#
@@ -298,6 +295,16 @@ SET DEBUG_SYNC= 'p9abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
SET DEBUG_SYNC= 'p3abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
+
+#
+# Wait for all signals currently active except s3.
+#
+SET DEBUG_SYNC= 'now WAIT_FOR s9';
+SET DEBUG_SYNC= 'now WAIT_FOR s1';
+SET DEBUG_SYNC= 'now WAIT_FOR s4';
+SET DEBUG_SYNC= 'now WAIT_FOR s7';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+
#
# Clear the actions.
#
@@ -320,7 +327,7 @@ SHOW VARIABLES LIKE 'DEBUG_SYNC';
SET DEBUG_SYNC= 'p9abcdef TEST';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
#
-# Now cleanup. Actions are clear already, but signal needs to be cleared.
+# Now cleanup. Actions are clear already, but s3 signal needs to be cleared.
#
SET DEBUG_SYNC= 'RESET';
SHOW VARIABLES LIKE 'DEBUG_SYNC';
@@ -418,10 +425,24 @@ disconnect con2;
connection default;
DROP TABLE t1;
+--echo #
+--echo # Test NO_CLEAR_EVENT flag. The signal should still be visible after
+--echo # the wait has completed succesfully.
+--echo #
+SET DEBUG_SYNC= 'now SIGNAL s1';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+SET DEBUG_SYNC= 'now WAIT_FOR s1 NO_CLEAR_EVENT';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+SET DEBUG_SYNC= 'now WAIT_FOR s1';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+
+SET DEBUG_SYNC= 'now SIGNAL s1,s2,s5,s7';
+SHOW VARIABLES LIKE 'DEBUG_SYNC';
+
+
#
# Cleanup after test case.
-# Otherwise signal would contain 'flushed' here,
-# which could confuse the next test.
+# Otherwise signal would confuse the next test.
#
SET DEBUG_SYNC= 'RESET';
diff --git a/mysql-test/main/default.result b/mysql-test/main/default.result
index ae835940af3..335f7e7d607 100644
--- a/mysql-test/main/default.result
+++ b/mysql-test/main/default.result
@@ -899,7 +899,7 @@ CREATE TABLE t1 (a VARCHAR(2) DEFAULT CONCAT(_utf8 0x41) NOT NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(2) NOT NULL DEFAULT concat(_utf8'A')
+ `a` varchar(2) NOT NULL DEFAULT concat(_utf8mb3'A')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (DEFAULT);
SELECT * FROM t1;
@@ -910,7 +910,7 @@ CREATE TABLE t1 (a VARCHAR(2) DEFAULT CONCAT(_utf8 X'41') NOT NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` varchar(2) NOT NULL DEFAULT concat(_utf8'A')
+ `a` varchar(2) NOT NULL DEFAULT concat(_utf8mb3'A')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 VALUES (DEFAULT);
SELECT * FROM t1;
@@ -2230,7 +2230,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(10) DEFAULT NULL,
`b` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT `a`,
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT convert(`a` using utf8),
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT convert(`a` using utf8mb3),
`d` varbinary(10) DEFAULT (cast(`a` as char charset binary))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
INSERT INTO t1 (a) VALUES ('a');
diff --git a/mysql-test/main/delayed.result b/mysql-test/main/delayed.result
index fe284dfcdad..4b482c8bb66 100644
--- a/mysql-test/main/delayed.result
+++ b/mysql-test/main/delayed.result
@@ -494,7 +494,7 @@ create table t1 (a int, b int) engine=myisam;
insert into t1 values (1,1);
SET debug_dbug="d,crash_shutdown";
shutdown;
-ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to server during query
call mtr.add_suppression(" marked as crashed and should be repaired");
call mtr.add_suppression("Checking table");
insert delayed into t1 values (2,2);
diff --git a/mysql-test/main/delayed.test b/mysql-test/main/delayed.test
index 51163fccf39..a99af07232c 100644
--- a/mysql-test/main/delayed.test
+++ b/mysql-test/main/delayed.test
@@ -640,8 +640,10 @@ insert into t1 values (1,1);
call mtr.add_suppression(" marked as crashed and should be repaired");
call mtr.add_suppression("Checking table");
+--enable_prepare_warnings
--replace_result '\\' '/'
insert delayed into t1 values (2,2);
+--disable_prepare_warnings
insert delayed into t1 values (3,3);
flush tables t1;
select * from t1;
diff --git a/mysql-test/main/derived.test b/mysql-test/main/derived.test
index 67ea3c0d39a..e25c1c89ad3 100644
--- a/mysql-test/main/derived.test
+++ b/mysql-test/main/derived.test
@@ -475,8 +475,10 @@ CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (8);
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1),(7);
+--enable_prepare_warnings
EXPLAIN SELECT * FROM (SELECT * FROM t1) AS table1,
(SELECT DISTINCT * FROM t2) AS table2 WHERE b = a AND a <> ANY (SELECT 9);
+--disable_prepare_warnings
DROP TABLE t1, t2;
set optimizer_switch=@save_derived_optimizer_switch_bug;
diff --git a/mysql-test/main/derived_cond_pushdown.result b/mysql-test/main/derived_cond_pushdown.result
index 4fc9a0a213f..f47920c0e33 100644
--- a/mysql-test/main/derived_cond_pushdown.result
+++ b/mysql-test/main/derived_cond_pushdown.result
@@ -3454,10 +3454,10 @@ a b max_c avg_c a b max_c avg_c a b min_c a b c d
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279
6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909
-6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
-6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314
+6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
+6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406
8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107
8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279
@@ -3472,10 +3472,10 @@ a b max_c avg_c a b max_c avg_c a b min_c a b c d
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 20 315 279
6 20 315 279.3333 6 20 315 279.3333 8 33 114 8 80 800 314
6 20 315 279.3333 6 20 315 279.3333 6 20 214 6 23 303 909
-6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
-6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 64 248 107
8 33 404 213.6667 6 20 315 279.3333 8 33 114 8 80 800 314
+6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 20 315 279
+6 20 315 279.3333 8 33 404 213.6667 6 20 214 6 23 303 909
8 33 404 213.6667 8 33 404 213.6667 7 11 708 7 13 312 406
8 33 404 213.6667 8 33 404 213.6667 8 33 114 8 64 248 107
8 33 404 213.6667 8 33 404 213.6667 6 20 214 6 20 315 279
@@ -3487,8 +3487,8 @@ and (v1.max_c<500) and (v3.a=t2.a) and (v2.max_c>300);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where
1 PRIMARY <derived4> ref key0 key0 5 test.t2.a 2 Using where
-1 PRIMARY <derived3> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join)
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (incremental, BNL join)
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join)
+1 PRIMARY <derived3> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (incremental, BNL join)
4 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
3 DERIVED t1 ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
2 DERIVED t1 ALL NULL NULL NULL NULL 20 Using temporary; Using filesort
@@ -3538,19 +3538,19 @@ EXPLAIN
},
"block-nl-join": {
"table": {
- "table_name": "<derived3>",
+ "table_name": "<derived2>",
"access_type": "ALL",
"rows": 20,
"filtered": 100,
- "attached_condition": "v2.max_c > 300"
+ "attached_condition": "v1.max_c < 500"
},
"buffer_type": "flat",
"buffer_size": "715",
"join_type": "BNL",
"materialized": {
"query_block": {
- "select_id": 3,
- "having_condition": "max_c < 707 and max_c > 300",
+ "select_id": 2,
+ "having_condition": "max_c < 707 and max_c < 500",
"filesort": {
"sort_key": "t1.a, t1.b",
"temporary_table": {
@@ -3558,8 +3558,7 @@ EXPLAIN
"table_name": "t1",
"access_type": "ALL",
"rows": 20,
- "filtered": 100,
- "attached_condition": "t1.a > 5"
+ "filtered": 100
}
}
}
@@ -3568,20 +3567,20 @@ EXPLAIN
},
"block-nl-join": {
"table": {
- "table_name": "<derived2>",
+ "table_name": "<derived3>",
"access_type": "ALL",
"rows": 20,
"filtered": 100,
- "attached_condition": "v1.max_c < 500"
+ "attached_condition": "v2.max_c > 300"
},
"buffer_type": "incremental",
"buffer_size": "9Kb",
"join_type": "BNL",
- "attached_condition": "v1.a = v2.a or v1.a = t2.a",
+ "attached_condition": "v2.a = v1.a or v1.a = t2.a",
"materialized": {
"query_block": {
- "select_id": 2,
- "having_condition": "max_c < 707 and max_c < 500",
+ "select_id": 3,
+ "having_condition": "max_c < 707 and max_c > 300",
"filesort": {
"sort_key": "t1.a, t1.b",
"temporary_table": {
@@ -3589,7 +3588,8 @@ EXPLAIN
"table_name": "t1",
"access_type": "ALL",
"rows": 20,
- "filtered": 100
+ "filtered": 100,
+ "attached_condition": "t1.a > 5"
}
}
}
@@ -9684,11 +9684,22 @@ EXPLAIN
"query_block": {
"select_id": 1,
"table": {
- "table_name": "<derived2>",
+ "table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
- "attached_condition": "1 in (0,dt1.a)",
+ "attached_condition": "1 in (0,t1.a) and t1.a is not null"
+ },
+ "table": {
+ "table_name": "<derived2>",
+ "access_type": "ref",
+ "possible_keys": ["key0"],
+ "key": "key0",
+ "key_length": "5",
+ "used_key_parts": ["a"],
+ "ref": ["test.t1.a"],
+ "rows": 2,
+ "filtered": 100,
"materialized": {
"query_block": {
"select_id": 2,
@@ -9706,18 +9717,6 @@ EXPLAIN
}
}
}
- },
- "block-nl-join": {
- "table": {
- "table_name": "t1",
- "access_type": "ALL",
- "rows": 2,
- "filtered": 100
- },
- "buffer_type": "flat",
- "buffer_size": "65",
- "join_type": "BNL",
- "attached_condition": "t1.a = dt1.a"
}
}
}
@@ -9743,11 +9742,22 @@ EXPLAIN
"query_block": {
"select_id": 1,
"table": {
- "table_name": "<derived2>",
+ "table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
- "attached_condition": "dt.a in (1,dt.a)",
+ "attached_condition": "t1.a in (1,t1.a) and t1.a is not null"
+ },
+ "table": {
+ "table_name": "<derived2>",
+ "access_type": "ref",
+ "possible_keys": ["key0"],
+ "key": "key0",
+ "key_length": "5",
+ "used_key_parts": ["a"],
+ "ref": ["test.t1.a"],
+ "rows": 2,
+ "filtered": 100,
"materialized": {
"query_block": {
"select_id": 2,
@@ -9765,18 +9775,6 @@ EXPLAIN
}
}
}
- },
- "block-nl-join": {
- "table": {
- "table_name": "t1",
- "access_type": "ALL",
- "rows": 2,
- "filtered": 100
- },
- "buffer_type": "flat",
- "buffer_size": "119",
- "join_type": "BNL",
- "attached_condition": "t1.a = dt.a"
}
}
}
@@ -10376,11 +10374,22 @@ EXPLAIN
"query_block": {
"select_id": 1,
"table": {
- "table_name": "<derived3>",
+ "table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
- "attached_condition": "t.f2 < 2",
+ "attached_condition": "t1.f2 < 2 and t1.f2 is not null"
+ },
+ "table": {
+ "table_name": "<derived3>",
+ "access_type": "ref",
+ "possible_keys": ["key0"],
+ "key": "key0",
+ "key_length": "5",
+ "used_key_parts": ["f2"],
+ "ref": ["test.t1.f2"],
+ "rows": 2,
+ "filtered": 100,
"materialized": {
"query_block": {
"select_id": 3,
@@ -10393,13 +10402,6 @@ EXPLAIN
}
}
}
- },
- "table": {
- "table_name": "t1",
- "access_type": "ALL",
- "rows": 2,
- "filtered": 100,
- "attached_condition": "t1.f2 = t.f2"
}
}
}
@@ -10417,11 +10419,22 @@ EXPLAIN
"query_block": {
"select_id": 1,
"table": {
- "table_name": "<derived3>",
+ "table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
- "attached_condition": "t.f2 < 2",
+ "attached_condition": "t1.f2 < 2 and t1.f2 is not null"
+ },
+ "table": {
+ "table_name": "<derived3>",
+ "access_type": "ref",
+ "possible_keys": ["key0"],
+ "key": "key0",
+ "key_length": "5",
+ "used_key_parts": ["f2"],
+ "ref": ["test.t1.f2"],
+ "rows": 1,
+ "filtered": 100,
"materialized": {
"query_block": {
"select_id": 3,
@@ -10436,18 +10449,6 @@ EXPLAIN
}
}
}
- },
- "block-nl-join": {
- "table": {
- "table_name": "t1",
- "access_type": "ALL",
- "rows": 2,
- "filtered": 100
- },
- "buffer_type": "flat",
- "buffer_size": "65",
- "join_type": "BNL",
- "attached_condition": "t1.f2 = t.f2"
}
}
}
@@ -14388,8 +14389,8 @@ a b c a b c
3 21 500 3 21 231
explain select * from v1,t2 where (v1.b=t2.b) and (v1.a<4);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where; Using join buffer (flat, BNL join)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using where
+1 PRIMARY <derived2> ref key0 key0 5 test.t2.b 2 Using where
2 DERIVED t3 range i1 i1 5 NULL 2 Using index condition
3 UNION t3 range i1 i1 5 NULL 1 Using index condition
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
@@ -14399,9 +14400,21 @@ EXPLAIN
"query_block": {
"select_id": 1,
"table": {
- "table_name": "<derived2>",
+ "table_name": "t2",
"access_type": "ALL",
- "rows": 3,
+ "rows": 9,
+ "filtered": 100,
+ "attached_condition": "t2.b is not null"
+ },
+ "table": {
+ "table_name": "<derived2>",
+ "access_type": "ref",
+ "possible_keys": ["key0"],
+ "key": "key0",
+ "key_length": "5",
+ "used_key_parts": ["b"],
+ "ref": ["test.t2.b"],
+ "rows": 2,
"filtered": 100,
"attached_condition": "v1.a < 4",
"materialized": {
@@ -14447,18 +14460,6 @@ EXPLAIN
}
}
}
- },
- "block-nl-join": {
- "table": {
- "table_name": "t2",
- "access_type": "ALL",
- "rows": 9,
- "filtered": 100
- },
- "buffer_type": "flat",
- "buffer_size": "173",
- "join_type": "BNL",
- "attached_condition": "t2.b = v1.b"
}
}
}
diff --git a/mysql-test/main/derived_cond_pushdown.test b/mysql-test/main/derived_cond_pushdown.test
index 6cfe23b7866..17115c143ac 100644
--- a/mysql-test/main/derived_cond_pushdown.test
+++ b/mysql-test/main/derived_cond_pushdown.test
@@ -1064,9 +1064,10 @@ DROP TABLE t1,t2;
CREATE TABLE t1 (i INT);
CREATE OR REPLACE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT * FROM t1;
INSERT INTO t1 VALUES (1),(2);
-
+--enable_prepare_warnings
EXPLAIN FORMAT=JSON
SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
+--disable_prepare_warnings
SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
diff --git a/mysql-test/main/derived_split_innodb.result b/mysql-test/main/derived_split_innodb.result
index 478c6e842bc..74876836a53 100644
--- a/mysql-test/main/derived_split_innodb.result
+++ b/mysql-test/main/derived_split_innodb.result
@@ -1,3 +1,5 @@
+SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
#
# MDEV-16917: do not use splitting for derived with join cache
#
@@ -285,3 +287,4 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DERIVED t4 ALL NULL NULL NULL NULL 40 Using filesort
drop table t3, t4;
# End of 10.3 tests
+SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent;
diff --git a/mysql-test/main/derived_split_innodb.test b/mysql-test/main/derived_split_innodb.test
index 7fd8df35985..1ebe27cd12c 100644
--- a/mysql-test/main/derived_split_innodb.test
+++ b/mysql-test/main/derived_split_innodb.test
@@ -2,6 +2,9 @@
--source include/default_optimizer_switch.inc
--source include/have_sequence.inc
+SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
+
--echo #
--echo # MDEV-16917: do not use splitting for derived with join cache
--echo #
@@ -229,3 +232,5 @@ where t3.b > 15;
drop table t3, t4;
--echo # End of 10.3 tests
+
+SET GLOBAL innodb_stats_persistent=@save_innodb_stats_persistent;
diff --git a/mysql-test/main/drop.result b/mysql-test/main/drop.result
index d50ffabc9fa..73beabc35fa 100644
--- a/mysql-test/main/drop.result
+++ b/mysql-test/main/drop.result
@@ -52,6 +52,7 @@ mtr
mysql
mysqltest
performance_schema
+sys
test
flush tables with read lock;
drop database mysqltest;
@@ -64,6 +65,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
drop database mysqltest;
ERROR HY000: Can't drop database 'mysqltest'; database doesn't exist
diff --git a/mysql-test/main/drop_table_force.result b/mysql-test/main/drop_table_force.result
index 622589eb3b9..404d8be8b21 100644
--- a/mysql-test/main/drop_table_force.result
+++ b/mysql-test/main/drop_table_force.result
@@ -77,7 +77,6 @@ drop table t1;
ERROR 42S02: Unknown table 'test.t1'
show warnings;
Level Code Message
-Error 29 File './test/t1.MAD' not found (Errcode: 2 "No such file or directory")
Error 1051 Unknown table 'test.t1'
db.opt
create table t2(a int) engine=aria;
diff --git a/mysql-test/main/dyncol.result b/mysql-test/main/dyncol.result
index 4275bf1ce43..08f22ffb3b4 100644
--- a/mysql-test/main/dyncol.result
+++ b/mysql-test/main/dyncol.result
@@ -157,7 +157,7 @@ select hex(COLUMN_CREATE(1, "afaf" AS char character set utf8,
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select hex(column_create(1,'afaf' AS char charset utf8 ,2,1212 AS unsigned int,3,1212 AS int,4,12.12 AS double,4 + 1,12.12 AS decimal,6,'2011-04-05' AS date,7,'- 0:45:49.000001' AS time,8,'2011-04-05 0:45:49.000001' AS datetime)) AS `hex(COLUMN_CREATE(1, "afaf" AS char character set utf8,
+Note 1003 select hex(column_create(1,'afaf' AS char charset utf8mb3 ,2,1212 AS unsigned int,3,1212 AS int,4,12.12 AS double,4 + 1,12.12 AS decimal,6,'2011-04-05' AS date,7,'- 0:45:49.000001' AS time,8,'2011-04-05 0:45:49.000001' AS datetime)) AS `hex(COLUMN_CREATE(1, "afaf" AS char character set utf8,
2, 1212 AS unsigned int,
3, 1212 AS int,
4, 12.12 AS double,
@@ -368,7 +368,7 @@ select column_get(column_create(1, "1212" AS char charset utf8), 1 as char chars
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select column_get(column_create(1,'1212' AS char charset utf8 ),1 as char charset utf8) AS `column_get(column_create(1, "1212" AS char charset utf8), 1 as char charset utf8)`
+Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 ),1 as char charset utf8mb3) AS `column_get(column_create(1, "1212" AS char charset utf8), 1 as char charset utf8)`
select column_get(column_create(1, 1212 AS unsigned int), 1 as char charset utf8);
column_get(column_create(1, 1212 AS unsigned int), 1 as char charset utf8)
1212
@@ -428,7 +428,7 @@ select column_get(column_create(1, "1212" AS char charset utf8), 1 as char chars
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
-Note 1003 select column_get(column_create(1,'1212' AS char charset utf8 ),1 as char charset binary) AS `column_get(column_create(1, "1212" AS char charset utf8), 1 as char charset binary)`
+Note 1003 select column_get(column_create(1,'1212' AS char charset utf8mb3 ),1 as char charset binary) AS `column_get(column_create(1, "1212" AS char charset utf8), 1 as char charset binary)`
#
# column get real
#
@@ -1508,7 +1508,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int);
column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int)
NULL
set names latin1;
-# column existance test (names)
+# column existence test (names)
set names utf8;
select column_exists(column_create("адын", 1212), "адын");
column_exists(column_create("адын", 1212), "адын")
@@ -1901,7 +1901,7 @@ drop table t1;
create view v1 as select column_get(column_add(column_create(1 , 'blue' as char), 2, 'ttt'), 1 as char);
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select column_get(column_add(column_create(1,'blue' AS char charset utf8 ),2,'ttt'),1 as char charset utf8) AS `Name_exp_1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select column_get(column_add(column_create(1,'blue' AS char charset utf8mb3 ),2,'ttt'),1 as char charset utf8mb3) AS `Name_exp_1` utf8mb3 utf8mb3_general_ci
select * from v1;
Name_exp_1
blue
@@ -1929,9 +1929,9 @@ t1 CREATE TABLE `t1` (
`name` varchar(10) DEFAULT NULL,
`value` varchar(10) DEFAULT NULL,
`dyncol0` blob DEFAULT column_create(`name`,`value`),
- `value_dyncol0_name0` varchar(10) DEFAULT (column_get(`dyncol0`,'name0' as char charset utf8)),
+ `value_dyncol0_name0` varchar(10) DEFAULT (column_get(`dyncol0`,'name0' as char charset utf8mb3)),
`dyncol1` blob DEFAULT column_add(`dyncol0`,'name1','value1'),
- `value_dyncol1_name1` varchar(10) DEFAULT (column_get(`dyncol1`,'name1' as char charset utf8)),
+ `value_dyncol1_name1` varchar(10) DEFAULT (column_get(`dyncol1`,'name1' as char charset utf8mb3)),
`dyncol2` blob DEFAULT column_add(`dyncol1`,'name1',NULL AS int),
`dyncol2_exists_name0` int(11) DEFAULT column_exists(`dyncol2`,'name0'),
`dyncol2_exists_name1` int(11) DEFAULT column_exists(`dyncol2`,'name1'),
diff --git a/mysql-test/main/dyncol.test b/mysql-test/main/dyncol.test
index 286cc6216a6..493e9b3842d 100644
--- a/mysql-test/main/dyncol.test
+++ b/mysql-test/main/dyncol.test
@@ -691,7 +691,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), 4 as int);
select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int);
set names latin1;
---echo # column existance test (names)
+--echo # column existence test (names)
set names utf8;
select column_exists(column_create("адын", 1212), "адын");
select column_exists(column_create("адын", 1212), "aады");
diff --git a/mysql-test/main/empty_string_literal.result b/mysql-test/main/empty_string_literal.result
index 49153d68fa5..732e8e6d557 100644
--- a/mysql-test/main/empty_string_literal.result
+++ b/mysql-test/main/empty_string_literal.result
@@ -31,17 +31,17 @@ latin2 NULL
SET sql_mode=@mode;
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
NULL CHARSET(N'') x CHARSET(N'x')
-NULL utf8 x utf8
+NULL utf8mb3 x utf8mb3
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
-utf8 NULL
+utf8mb3 NULL
SET sql_mode=default;
SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
CHARSET(N'') x CHARSET(N'x')
- utf8 x utf8
+ utf8mb3 x utf8mb3
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'')
-utf8 NULL
+utf8mb3 NULL
#
# Test CHARSET prefix litteral
#
@@ -98,7 +98,7 @@ NULL CHARSET(_latin1'' '' '')
NULL latin1
SELECT N'' '' '',CHARSET(N'' '' '');
NULL CHARSET(N'' '' '')
-NULL utf8
+NULL utf8mb3
#
# UNION - implicit group by
#
diff --git a/mysql-test/main/endspace.result b/mysql-test/main/endspace.result
index f9619db7e64..e7160f2829b 100644
--- a/mysql-test/main/endspace.result
+++ b/mysql-test/main/endspace.result
@@ -162,7 +162,8 @@ nothing
teststring
teststring
drop table t1;
-create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb
+stats_persistent=0;
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
check table t1;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/endspace.test b/mysql-test/main/endspace.test
index 69b8133c5f7..be120667b56 100644
--- a/mysql-test/main/endspace.test
+++ b/mysql-test/main/endspace.test
@@ -74,7 +74,8 @@ drop table t1;
# Test InnoDB tables
#
-create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb;
+create table t1 (text1 varchar(32) not NULL, KEY key1 (text1)) engine=innodb
+stats_persistent=0;
insert into t1 values ('teststring'), ('nothing'), ('teststring\t');
check table t1;
select * from t1 where text1='teststring' or text1 like 'teststring_%';
diff --git a/mysql-test/main/events_1.result b/mysql-test/main/events_1.result
index 26611abb880..c425f88eab2 100644
--- a/mysql-test/main/events_1.result
+++ b/mysql-test/main/events_1.result
@@ -150,109 +150,109 @@ Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root6;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root6 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root6` ON SCHEDULE EVERY '10:20' MINUTE_SECOND STARTS '#' ON COMPLETION PRESERVE ENABLE COMMENT 'some comment' DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root6 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root6` ON SCHEDULE EVERY '10:20' MINUTE_SECOND STARTS '#' ON COMPLETION PRESERVE ENABLE COMMENT 'some comment' DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root7 on schedule every 2 year do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root7;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root7 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root7` ON SCHEDULE EVERY 2 YEAR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root7 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root7` ON SCHEDULE EVERY 2 YEAR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root8 on schedule every '2:5' year_month do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root8;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root8 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root8` ON SCHEDULE EVERY '2-5' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root8 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root8` ON SCHEDULE EVERY '2-5' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root8_1 on schedule every '2:15' year_month do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root8_1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root8_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root8_1` ON SCHEDULE EVERY '3-3' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root8_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root8_1` ON SCHEDULE EVERY '3-3' YEAR_MONTH STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root9 on schedule every 2 week ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root9;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root9 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root9` ON SCHEDULE EVERY 2 WEEK STARTS '#' ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root9 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root9` ON SCHEDULE EVERY 2 WEEK STARTS '#' ON COMPLETION PRESERVE DISABLE COMMENT 'коментар на кирилица' DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root10 on schedule every '20:5' day_hour do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root10;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root10 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root10` ON SCHEDULE EVERY '20 5' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root10 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root10` ON SCHEDULE EVERY '20 5' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root11 on schedule every '20:25' day_hour do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root11;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root11 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root11` ON SCHEDULE EVERY '21 1' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root11 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root11` ON SCHEDULE EVERY '21 1' DAY_HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root12 on schedule every '20:25' hour_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root12;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root12 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root12` ON SCHEDULE EVERY '20:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root12 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root12` ON SCHEDULE EVERY '20:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root13 on schedule every '25:25' hour_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root13;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root13 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root13` ON SCHEDULE EVERY '25:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root13 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root13` ON SCHEDULE EVERY '25:25' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root13_1 on schedule every '11:65' hour_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root13_1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root13_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root13_1` ON SCHEDULE EVERY '12:5' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root13_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root13_1` ON SCHEDULE EVERY '12:5' HOUR_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root14 on schedule every '35:35' minute_second do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root14;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root14 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root14` ON SCHEDULE EVERY '35:35' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root14 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root14` ON SCHEDULE EVERY '35:35' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root15 on schedule every '35:66' minute_second do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root15;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root15 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root15` ON SCHEDULE EVERY '36:6' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root15 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root15` ON SCHEDULE EVERY '36:6' MINUTE_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root16 on schedule every '35:56' day_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root16;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root16 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root16` ON SCHEDULE EVERY '1 11:56' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root16 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root16` ON SCHEDULE EVERY '1 11:56' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root17 on schedule every '35:12:45' day_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root17;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root17 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root17` ON SCHEDULE EVERY '35 12:45' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root17 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root17` ON SCHEDULE EVERY '35 12:45' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root17_1 on schedule every '35:25:65' day_minute do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root17_1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root17_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root17_1` ON SCHEDULE EVERY '36 2:5' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root17_1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root17_1` ON SCHEDULE EVERY '36 2:5' DAY_MINUTE STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root18 on schedule every '35:12:45' hour_second do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root18;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root18 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root18` ON SCHEDULE EVERY '35:12:45' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root18 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root18` ON SCHEDULE EVERY '35:12:45' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root19 on schedule every '15:59:85' hour_second do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root19;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root19 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root19` ON SCHEDULE EVERY '16:0:25' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root19 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root19` ON SCHEDULE EVERY '16:0:25' HOUR_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
create event root20 on schedule every '50:20:12:45' day_second do select 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
SHOW CREATE EVENT root20;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-root20 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root20` ON SCHEDULE EVERY '50 20:12:45' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+root20 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `root20` ON SCHEDULE EVERY '50 20:12:45' DAY_SECOND STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
set names cp1251;
create event ðóóò21 on schedule every '50:23:59:95' day_second COMMENT 'òîâà å 1251 êîìåíòàð' do select 1;
Warnings:
diff --git a/mysql-test/main/events_2.result b/mysql-test/main/events_2.result
index ec8dc0ff305..1753fa41ad0 100644
--- a/mysql-test/main/events_2.result
+++ b/mysql-test/main/events_2.result
@@ -145,7 +145,7 @@ Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON
lock table t1 read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -163,7 +163,7 @@ unlock tables;
lock table t1 write;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -181,7 +181,7 @@ unlock tables;
lock table t1 read, mysql.event read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -199,7 +199,7 @@ unlock tables;
lock table t1 write, mysql.event read;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
@@ -221,7 +221,7 @@ ERROR HY000: You can't combine write-locking of system tables with other tables
lock table mysql.event write;
show create event e1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation
-e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8 utf8_general_ci latin1_swedish_ci
+e1 SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `e1` ON SCHEDULE EVERY 10 HOUR STARTS '#' ON COMPLETION NOT PRESERVE ENABLE DO select 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
select event_name from information_schema.events;
event_name
e1
diff --git a/mysql-test/main/events_logs_tests.result b/mysql-test/main/events_logs_tests.result
index ac4a43118da..d332767a9f1 100644
--- a/mysql-test/main/events_logs_tests.result
+++ b/mysql-test/main/events_logs_tests.result
@@ -11,7 +11,8 @@ test suite is run in normal mode or with --ps-protocol
create procedure select_general_log()
begin
select user_host, argument from mysql.general_log
-where argument like '%events_logs_test%';
+where argument like '%events_logs_test%' AND
+(command_type = 'Query' OR command_type = 'Execute');
end|
Check that general query log works, but sub-statements
diff --git a/mysql-test/main/events_logs_tests.test b/mysql-test/main/events_logs_tests.test
index 5d00c3ab9ce..f7445352079 100644
--- a/mysql-test/main/events_logs_tests.test
+++ b/mysql-test/main/events_logs_tests.test
@@ -18,7 +18,8 @@ delimiter |;
create procedure select_general_log()
begin
select user_host, argument from mysql.general_log
- where argument like '%events_logs_test%';
+ where argument like '%events_logs_test%' AND
+ (command_type = 'Query' OR command_type = 'Execute');
end|
delimiter ;|
--echo
diff --git a/mysql-test/main/events_restart.test b/mysql-test/main/events_restart.test
index f56bd32b71d..624c4188f9a 100644
--- a/mysql-test/main/events_restart.test
+++ b/mysql-test/main/events_restart.test
@@ -1,6 +1,5 @@
# Can't test with embedded server that doesn't support grants
-- source include/not_embedded.inc
-
call mtr.add_suppression("Column count of mysql.event is wrong. Expected .*, found .*\. The table is probably corrupted");
let $collation_server=`select @@collation_server`;
diff --git a/mysql-test/main/explain.result b/mysql-test/main/explain.result
index 8a9fd3c5390..8db5e9f51ac 100644
--- a/mysql-test/main/explain.result
+++ b/mysql-test/main/explain.result
@@ -424,8 +424,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
2 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
-Warnings:
-Note 1249 Select 3 was reduced during optimization
+3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
#
# MDEV-23160: SIGSEGV in Explain_node::print_explain_for_children on UNION SELECT
#
diff --git a/mysql-test/main/explain.test b/mysql-test/main/explain.test
index fc789601788..36595ba727c 100644
--- a/mysql-test/main/explain.test
+++ b/mysql-test/main/explain.test
@@ -368,5 +368,7 @@ UNION
SELECT * FROM t1 ORDER BY (SELECT a);
drop table t1;
+--disable_ps_protocol
explain
VALUES ( (VALUES (2))) UNION VALUES ( (SELECT 3));
+--enable_ps_protocol
diff --git a/mysql-test/main/explain_json.result b/mysql-test/main/explain_json.result
index 6ce29c2828d..e93564132b3 100644
--- a/mysql-test/main/explain_json.result
+++ b/mysql-test/main/explain_json.result
@@ -1108,7 +1108,7 @@ EXPLAIN
"access_type": "ALL",
"rows": 2,
"filtered": 100,
- "attached_condition": "(case when convert(t1.a using utf8) = <cache>(_utf8'a' collate utf8_bin) then NULL else t1.a end)"
+ "attached_condition": "(case when convert(t1.a using utf8mb3) = <cache>(_utf8mb3'a' collate utf8mb3_bin) then NULL else t1.a end)"
}
}
}
diff --git a/mysql-test/main/explain_non_select.result b/mysql-test/main/explain_non_select.result
index 111b4c8ae50..d1e7af6afde 100644
--- a/mysql-test/main/explain_non_select.result
+++ b/mysql-test/main/explain_non_select.result
@@ -229,7 +229,7 @@ INSERT INTO t1 VALUES (1),(2);
EXPLAIN UPDATE v1, mysql.user SET v1.a = v1.a + 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
-1 SIMPLE global_priv index NULL PRIMARY 420 NULL 5 Using index
+1 SIMPLE global_priv index NULL PRIMARY 1149 NULL 5 Using index
DROP TABLE t1;
DROP VIEW v1;
#
diff --git a/mysql-test/main/fast_prefix_index_fetch_innodb.result b/mysql-test/main/fast_prefix_index_fetch_innodb.result
index ef297e5c6b5..aa888fb0704 100644
--- a/mysql-test/main/fast_prefix_index_fetch_innodb.result
+++ b/mysql-test/main/fast_prefix_index_fetch_innodb.result
@@ -3,6 +3,8 @@ set global innodb_prefix_index_cluster_optimization = ON;
show variables like 'innodb_prefix_index_cluster_optimization';
Variable_name Value
innodb_prefix_index_cluster_optimization ON
+SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = OFF;
# Create a table with a large varchar field that we index the prefix
# of and ensure we only trigger cluster lookups when we expect it.
create table prefixinno (
@@ -455,3 +457,4 @@ blog_id
1
DROP TABLE wp_blogs;
SET GLOBAL innodb_prefix_index_cluster_optimization = @save_opt;
+SET GLOBAL innodb_stats_persistent = @save_innodb_stats_persistent;
diff --git a/mysql-test/main/fast_prefix_index_fetch_innodb.test b/mysql-test/main/fast_prefix_index_fetch_innodb.test
index 68d3dc0648d..52066e96117 100644
--- a/mysql-test/main/fast_prefix_index_fetch_innodb.test
+++ b/mysql-test/main/fast_prefix_index_fetch_innodb.test
@@ -5,6 +5,9 @@ SET @save_opt= @@GLOBAL.innodb_prefix_index_cluster_optimization;
set global innodb_prefix_index_cluster_optimization = ON;
show variables like 'innodb_prefix_index_cluster_optimization';
+SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = OFF;
+
--echo # Create a table with a large varchar field that we index the prefix
--echo # of and ensure we only trigger cluster lookups when we expect it.
create table prefixinno (
@@ -718,4 +721,5 @@ AND path IN ( '/fondsinvesteringer/', '/' );
DROP TABLE wp_blogs;
SET GLOBAL innodb_prefix_index_cluster_optimization = @save_opt;
+SET GLOBAL innodb_stats_persistent = @save_innodb_stats_persistent;
--enable_service_connection
diff --git a/mysql-test/main/features,ps.rdiff b/mysql-test/main/features,ps.rdiff
new file mode 100644
index 00000000000..9065c132714
--- /dev/null
+++ b/mysql-test/main/features,ps.rdiff
@@ -0,0 +1,21 @@
+--- features.result
++++ features,ps.result
+@@ -46,7 +46,7 @@
+ 1212
+ show status like "feature_dynamic_columns";
+ Variable_name Value
+-Feature_dynamic_columns 2
++Feature_dynamic_columns 4
+ #
+ # Feature fulltext
+ #
+@@ -93,7 +93,7 @@
+ drop table t1;
+ show status like "feature_subquery";
+ Variable_name Value
+-Feature_subquery 4
++Feature_subquery 5
+ #
+ # Feature timezone
+ #
+
diff --git a/mysql-test/main/features.test b/mysql-test/main/features.test
index d0f5263c5c3..14c86255c37 100644
--- a/mysql-test/main/features.test
+++ b/mysql-test/main/features.test
@@ -1,6 +1,7 @@
# Testing of feature statistics
-- source include/have_geometry.inc
+-- source include/protocol.inc
--disable_warnings
drop table if exists t1;
diff --git a/mysql-test/main/fetch_first.result b/mysql-test/main/fetch_first.result
new file mode 100644
index 00000000000..df182381d1c
--- /dev/null
+++ b/mysql-test/main/fetch_first.result
@@ -0,0 +1,1408 @@
+#
+# The following entries are meant for testing the parser, ensuring
+# the right values are passed down to the executor, for all possible
+# syntax combinations.
+#
+# Test basic syntax.
+#
+create table t1 (a int);
+create table t_keyword (`offset` int);
+insert into t1 values (1), (1), (2), (3), (2);
+insert into t_keyword values (1), (1), (2), (3), (2);
+#
+# Make sure the FETCH clause addition didn't introduce problems with
+# the offset keyword.
+#
+select * from t1
+order by a
+offset 2 rows;
+a
+2
+2
+3
+select * from t1
+offset 2 rows;
+a
+2
+2
+3
+#
+# Offset is now a reserved keyword. Column names can not have that name
+# without escaping the identifier.
+#
+select * from t_keyword
+order by offset;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'offset' at line 2
+select * from t_keyword
+order by `offset`;
+offset
+1
+1
+2
+2
+3
+#
+# Test syntax without a specific limit. (implicit one row)
+# Test the alias between row / rows and first / next.
+# Test ONLY vs WITH TIES.
+#
+select * from t1
+fetch first row only;
+a
+1
+select * from t1
+fetch first rows only;
+a
+1
+select * from t1
+fetch next row only;
+a
+1
+select * from t1
+fetch next rows only;
+a
+1
+#
+# Row / rows are mandatory after offset <n>
+#
+select * from t1
+order by a
+offset 2
+fetch first row only;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'fetch first row only' at line 4
+select * from t1
+order by a
+offset 2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3
+select * from t1
+order by a
+offset 2 row
+fetch first row only;
+a
+2
+select * from t1
+order by a
+offset 2 rows
+fetch first row only;
+a
+2
+#
+# Include offset before fetch clause.
+#
+select * from t1
+order by a
+offset 2 rows
+fetch first row only;
+a
+2
+select * from t1
+order by a
+offset 2 rows
+fetch first rows only;
+a
+2
+select * from t1
+offset 2 rows
+fetch next row only;
+a
+2
+select * from t1
+offset 2 rows
+fetch next rows only;
+a
+2
+#
+# Repeat the tests, but now with WITH TIES.
+# WITH TIES requires order by.
+#
+select * from t1
+fetch first row with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch first rows with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch next row with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch next rows with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+order by a
+fetch first row with ties;
+a
+1
+1
+select * from t1
+order by a
+fetch first rows with ties;
+a
+1
+1
+select * from t1
+order by a
+fetch next row with ties;
+a
+1
+1
+select * from t1
+order by a
+fetch next rows with ties;
+a
+1
+1
+#
+# Include offset before fetch clause.
+#
+select * from t1
+order by a
+offset 2 rows
+fetch first row with ties;
+a
+2
+2
+select * from t1
+order by a
+offset 2 rows
+fetch first rows with ties;
+a
+2
+2
+select * from t1
+order by a
+offset 2 rows
+fetch next row with ties;
+a
+2
+2
+select * from t1
+order by a
+offset 2 rows
+fetch next rows with ties;
+a
+2
+2
+#
+# Test syntax with a specific limit
+#
+select * from t1
+fetch first 3 row only;
+a
+1
+1
+2
+select * from t1
+fetch first 3 rows only;
+a
+1
+1
+2
+select * from t1
+fetch next 3 row only;
+a
+1
+1
+2
+select * from t1
+fetch next 3 rows only;
+a
+1
+1
+2
+#
+# Include offset before fetch clause.
+#
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 row only;
+a
+2
+2
+3
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 rows only;
+a
+2
+2
+3
+select * from t1
+offset 2 rows
+fetch next 3 row only;
+a
+2
+3
+2
+select * from t1
+offset 2 rows
+fetch next 3 rows only;
+a
+2
+3
+2
+#
+# Repeat the tests, but now with WITH TIES.
+# WITH TIES requires order by.
+#
+select * from t1
+fetch first 3 row with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch first 3 rows with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch next 3 row with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+fetch next 3 rows with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+order by a
+fetch first 3 row with ties;
+a
+1
+1
+2
+2
+select * from t1
+order by a
+fetch first 3 rows with ties;
+a
+1
+1
+2
+2
+select * from t1
+order by a
+fetch next 3 row with ties;
+a
+1
+1
+2
+2
+select * from t1
+order by a
+fetch next 3 rows with ties;
+a
+1
+1
+2
+2
+#
+# Include offset before fetch clause.
+#
+select * from t1
+offset 2 rows
+fetch first row with ties;
+ERROR HY000: FETCH ... WITH TIES requires ORDER BY clause to be present
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 row with ties;
+a
+2
+2
+3
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 rows with ties;
+a
+2
+2
+3
+select * from t1
+order by a
+offset 2 rows
+fetch next 3 row with ties;
+a
+2
+2
+3
+select * from t1
+order by a
+offset 2 rows
+fetch next 3 rows with ties;
+a
+2
+2
+3
+drop table t1;
+drop table t_keyword;
+#
+# Test behaviour with a simple select.
+#
+create table t1 (id int, first_name varchar(100), last_name varchar(100), score double);
+insert into t1 values
+(1, 'Alice', 'Fowler', 5),
+(2, 'John', 'Doe', 6),
+(3, 'John', 'Smith', 6),
+(4, 'John', 'Smith', 6),
+(5, 'John', 'Smith', 7),
+(6, 'John', 'Elton', 8.1),
+(7, 'Bob', 'Trasc', 9),
+(8, 'Silvia', 'Ganush', 10);
+create table t2
+(id int,
+location varchar(100),
+fk int,
+constraint `fk_t1`
+ FOREIGN KEY (fk) REFERENCES t1 (id)
+ON DELETE CASCADE
+ON UPDATE RESTRICT);
+insert into t2 values
+(1, 'L1', 1),
+(2, 'L2', 2),
+(3, 'L3', 3),
+(4, 'L3', 4),
+(5, 'L4', 5),
+(6, 'L4', 6),
+(7, 'L4', 7),
+(7, null, 8);
+select * from t1
+order by id
+fetch first 3 rows only;
+id first_name last_name score
+1 Alice Fowler 5
+2 John Doe 6
+3 John Smith 6
+select * from t1
+order by id
+fetch first 3 rows with ties;
+id first_name last_name score
+1 Alice Fowler 5
+2 John Doe 6
+3 John Smith 6
+select * from t1
+order by first_name
+fetch first 3 rows only;
+id first_name last_name score
+1 Alice Fowler 5
+7 Bob Trasc 9
+3 John Smith 6
+select * from t1
+order by first_name
+fetch first 3 rows with ties;
+id first_name last_name score
+1 Alice Fowler 5
+7 Bob Trasc 9
+2 John Doe 6
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+6 John Elton 8.1
+#
+# Test multi-part order by.
+#
+select * from t1
+order by first_name, last_name
+fetch first 3 rows with ties;
+id first_name last_name score
+1 Alice Fowler 5
+7 Bob Trasc 9
+2 John Doe 6
+select * from t1
+order by first_name, last_name
+fetch first 4 rows with ties;
+id first_name last_name score
+1 Alice Fowler 5
+7 Bob Trasc 9
+2 John Doe 6
+6 John Elton 8.1
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+7 Bob Trasc 9
+2 John Doe 6
+6 John Elton 8.1
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows only;
+id first_name last_name score
+7 Bob Trasc 9
+2 John Doe 6
+6 John Elton 8.1
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+7 Bob Trasc 9
+2 John Doe 6
+6 John Elton 8.1
+select * from t1
+order by first_name, last_name
+offset 2 rows
+fetch first 3 rows only;
+id first_name last_name score
+2 John Doe 6
+6 John Elton 8.1
+5 John Smith 7
+select * from t1
+order by first_name, last_name
+offset 2 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+2 John Doe 6
+6 John Elton 8.1
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+select * from t1
+order by first_name, last_name
+offset 3 rows
+fetch first 3 rows only;
+id first_name last_name score
+6 John Elton 8.1
+3 John Smith 6
+4 John Smith 6
+select * from t1
+order by first_name, last_name
+offset 3 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+6 John Elton 8.1
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+select * from t1
+order by first_name, last_name
+offset 4 rows
+fetch first 3 rows only;
+id first_name last_name score
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+select * from t1
+order by first_name, last_name
+offset 4 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+#
+# Test offset crossing into a new peer-group.
+#
+select * from t1
+order by first_name, last_name
+offset 5 rows
+fetch first 3 rows with ties;
+id first_name last_name score
+4 John Smith 6
+5 John Smith 7
+8 Silvia Ganush 10
+select * from t1
+order by first_name, last_name
+offset 5 rows
+fetch first 3 rows only;
+id first_name last_name score
+4 John Smith 6
+5 John Smith 7
+8 Silvia Ganush 10
+#
+# Simple join with 2 tables, order by without columns in the
+# second table and also with columns in the second table.
+#
+# Cover both only and with ties.
+#
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t1.first_name, t1.last_name
+fetch first 3 rows only;
+id first_name last_name score location
+1 Alice Fowler 5 L1
+7 Bob Trasc 9 L4
+2 John Doe 6 L2
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location, t1.first_name, t1.last_name
+fetch first 3 rows only;
+id first_name last_name score location
+8 Silvia Ganush 10 NULL
+1 Alice Fowler 5 L1
+2 John Doe 6 L2
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+id first_name last_name score location
+1 Alice Fowler 5 L1
+7 Bob Trasc 9 L4
+2 John Doe 6 L2
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location, t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+id first_name last_name score location
+8 Silvia Ganush 10 NULL
+1 Alice Fowler 5 L1
+2 John Doe 6 L2
+#
+# Test descending order by.
+#
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location desc, t1.first_name, t1.last_name
+fetch first 3 rows only;
+id first_name last_name score location
+7 Bob Trasc 9 L4
+6 John Elton 8.1 L4
+5 John Smith 7 L4
+select * from t2
+order by t2.location desc
+fetch first 2 rows with ties;
+id location fk
+5 L4 5
+6 L4 6
+7 L4 7
+select * from t2
+order by t2.location desc
+offset 1 rows
+fetch first 2 rows with ties;
+id location fk
+6 L4 6
+7 L4 7
+select * from t2
+order by t2.location desc
+offset 2 rows
+fetch first 2 rows with ties;
+id location fk
+3 L3 3
+4 L3 4
+7 L4 7
+#
+# Test a join with descending order by.
+#
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location desc, t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+id first_name last_name score location
+7 Bob Trasc 9 L4
+6 John Elton 8.1 L4
+5 John Smith 7 L4
+#
+# Test subqueries.
+#
+select * from (
+select * from t2
+order by t2.location desc
+offset 2 rows
+fetch first 2 rows with ties
+) temp;
+id location fk
+7 L4 7
+3 L3 3
+4 L3 4
+select * from t2
+order by t2.location desc
+offset 0 rows
+fetch first 2 rows with ties;
+id location fk
+5 L4 5
+6 L4 6
+7 L4 7
+create view v1 as (
+select * from t2
+order by t2.location desc
+offset 0 rows
+fetch first 2 rows with ties
+);
+create view v2 as (
+select * from t2
+order by t2.location desc
+offset 1 rows
+fetch first 2 rows with ties
+);
+create view v3 as (
+select * from t2
+order by t2.location desc
+offset 2 rows
+fetch first row with ties
+);
+select * from v1;
+id location fk
+5 L4 5
+6 L4 6
+7 L4 7
+select * from v2;
+id location fk
+6 L4 6
+7 L4 7
+select * from v3;
+id location fk
+7 L4 7
+show create view v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `t2`.`id` AS `id`,`t2`.`location` AS `location`,`t2`.`fk` AS `fk` from `t2` order by `t2`.`location` desc offset 0 rows fetch first 2 rows with ties) latin1 latin1_swedish_ci
+show create view v2;
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS (select `t2`.`id` AS `id`,`t2`.`location` AS `location`,`t2`.`fk` AS `fk` from `t2` order by `t2`.`location` desc offset 1 rows fetch first 2 rows with ties) latin1 latin1_swedish_ci
+show create view v3;
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS (select `t2`.`id` AS `id`,`t2`.`location` AS `location`,`t2`.`fk` AS `fk` from `t2` order by `t2`.`location` desc offset 2 rows fetch first 1 rows with ties) latin1 latin1_swedish_ci
+#
+# Test joins with views and order by referenced from the view.
+#
+select *
+from t1 inner join v1 on t1.id = v1.fk
+order by v1.location desc, t1.first_name
+offset 1 rows
+fetch first 1 rows with ties;
+id first_name last_name score id location fk
+5 John Smith 7 5 L4 5
+6 John Elton 8.1 6 L4 6
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name;
+first_name last_name sum(score)
+Alice Fowler 5
+Bob Trasc 9
+John Doe 6
+John Elton 8.1
+John Smith 19
+Silvia Ganush 10
+#
+# Test with ties with group by. Make sure that if order by is a less
+# specific sort of group by, that WITH TIES still gets executed.
+#
+explain
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using temporary; Using filesort
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+first_name last_name sum(score)
+Bob Trasc 9
+John Doe 6
+John Elton 8.1
+John Smith 19
+drop table t1;
+drop table t2;
+drop view v1;
+drop view v2;
+drop view v3;
+#
+# Test with ties when an index is used to provide the order by.
+#
+create table t1 (id int, first_name varchar(100), last_name varchar(100), score double);
+create index t1_name on t1 (first_name, last_name);
+insert into t1 values
+(1, 'Alice', 'Fowler', 5),
+(2, 'John', 'Doe', 6),
+(3, 'John', 'Smith', 6),
+(4, 'John', 'Smith', 6),
+(5, 'John', 'Smith', 7),
+(6, 'John', 'Elton', 8.1),
+(7, 'Bob', 'Trasc', 9),
+(8, 'Silvia', 'Ganush', 10);
+explain select first_name, last_name
+from t1
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL t1_name 206 NULL 3 Using index
+explain select first_name, last_name
+from t1
+order by first_name desc
+fetch first 2 rows with ties;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL t1_name 206 NULL 2 Using index
+select first_name, last_name
+from t1
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+first_name last_name
+Bob Trasc
+John Doe
+John Elton
+John Smith
+John Smith
+John Smith
+select first_name, last_name
+from t1
+order by first_name desc
+fetch first 2 rows with ties;
+first_name last_name
+Silvia Ganush
+John Smith
+John Smith
+John Smith
+John Elton
+John Doe
+select first_name, last_name
+from t1
+order by first_name desc
+offset 1 rows
+fetch first 2 rows with ties;
+first_name last_name
+John Smith
+John Smith
+John Smith
+John Elton
+John Doe
+select first_name, last_name
+from t1
+order by first_name desc
+offset 4 rows
+fetch first 2 rows with ties;
+first_name last_name
+John Elton
+John Doe
+select first_name, last_name
+from t1
+order by first_name desc
+offset 4 rows
+fetch first 3 rows with ties;
+first_name last_name
+John Elton
+John Doe
+Bob Trasc
+explain select first_name, last_name
+from t1
+where first_name != 'John'
+order by first_name
+fetch first 2 rows with ties;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range t1_name t1_name 103 NULL 3 Using where; Using index
+select first_name, last_name
+from t1
+where first_name != 'John'
+order by first_name
+fetch first 2 rows with ties;
+first_name last_name
+Alice Fowler
+Bob Trasc
+select first_name, last_name
+from t1
+where first_name != 'John'
+group by first_name, last_name
+order by first_name
+fetch first 2 rows with ties;
+first_name last_name
+Alice Fowler
+Bob Trasc
+#
+# Test CTE support.
+#
+explain with temp_table as (
+select first_name, last_name
+from t1
+where first_name != 'John'
+ group by first_name, last_name
+order by first_name
+fetch first 2 rows with ties
+)
+select * from temp_table
+order by first_name, last_name;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using filesort
+2 DERIVED t1 range t1_name t1_name 103 NULL 3 Using where; Using index
+with temp_table as (
+select first_name, last_name
+from t1
+group by first_name, last_name
+order by first_name
+fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name, last_name;
+first_name last_name
+Alice Fowler
+Bob Trasc
+John Doe
+John Elton
+John Smith
+with temp_table as (
+select first_name, last_name
+from t1
+group by first_name, last_name
+order by first_name
+fetch first 3 rows with ties
+)
+select * from temp_table
+order by last_name
+fetch first 3 rows with ties;
+first_name last_name
+John Doe
+John Elton
+Alice Fowler
+with temp_table as (
+select first_name, last_name
+from t1
+group by first_name, last_name
+order by first_name
+fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name
+fetch first 3 rows with ties;
+first_name last_name
+Alice Fowler
+Bob Trasc
+John Doe
+John Elton
+John Smith
+with temp_table as (
+select first_name, last_name
+from t1
+group by first_name, last_name
+order by first_name
+fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+first_name last_name
+Bob Trasc
+John Doe
+John Elton
+John Smith
+select first_name, row_number() over () rn
+from t1
+order by rn
+offset 1 rows
+fetch first 2 rows with ties;
+first_name rn
+Bob 2
+John 3
+select first_name, row_number() over () rn
+from t1
+order by rn desc
+offset 1 rows
+fetch first 2 rows with ties;
+first_name rn
+John 7
+John 6
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+fetch first 3 rows with ties;
+first_name score rank() over (ORDER BY score)
+Alice 5 1
+John 6 2
+John 6 2
+John 6 2
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+offset 1 rows
+fetch first 2 rows with ties;
+first_name score rank() over (ORDER BY score)
+John 6 2
+John 6 2
+John 6 2
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+fetch first 6 rows with ties;
+first_name score rank() over (ORDER BY score)
+Alice 5 1
+John 6 2
+John 6 2
+John 6 2
+John 7 5
+John 8.1 6
+#
+# Test nulls.
+#
+create table t2 (id int, location varchar(100), time datetime, value int, fk int);
+insert into t2 values (1, 'home', '2020-01-01 10:00', 10, 1);
+insert into t2 values (2, 'home', '2020-01-01 11:00', 11, 2);
+insert into t2 values (3, 'home', '2020-01-01 12:00', 12, 3);
+insert into t2 values (4, 'home', '2020-01-01 13:00', 13, 3);
+insert into t2 values (5, 'home', '2020-01-01 14:00', 13, 3);
+insert into t2 values (6, 'home', '2020-01-01 15:00', 13, 2);
+insert into t2 values (7, 'home', '2020-01-01 16:00', 13, 6);
+insert into t2 values (8, 'outside', '2020-01-01 17:00', 17, 6);
+insert into t2 values (9, 'outside', '2020-01-01 18:00', 17, 6);
+insert into t2 values (10, 'outside', '2020-01-01 19:00', 17, 8);
+insert into t2 values (11, 'outside', '2020-01-01 20:00', 16, 7);
+insert into t2 values (12, 'outside', '2020-01-01 21:00', 16, 7);
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location;
+id first_name last_name score id location time value fk
+1 Alice Fowler 5 1 home 2020-01-01 10:00:00 10 1
+2 John Doe 6 2 home 2020-01-01 11:00:00 11 2
+2 John Doe 6 6 home 2020-01-01 15:00:00 13 2
+3 John Smith 6 3 home 2020-01-01 12:00:00 12 3
+3 John Smith 6 4 home 2020-01-01 13:00:00 13 3
+3 John Smith 6 5 home 2020-01-01 14:00:00 13 3
+4 John Smith 6 NULL NULL NULL NULL NULL
+5 John Smith 7 NULL NULL NULL NULL NULL
+6 John Elton 8.1 7 home 2020-01-01 16:00:00 13 6
+6 John Elton 8.1 8 outside 2020-01-01 17:00:00 17 6
+6 John Elton 8.1 9 outside 2020-01-01 18:00:00 17 6
+7 Bob Trasc 9 11 outside 2020-01-01 20:00:00 16 7
+7 Bob Trasc 9 12 outside 2020-01-01 21:00:00 16 7
+8 Silvia Ganush 10 10 outside 2020-01-01 19:00:00 17 8
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 1 row with ties;
+id first_name last_name score id location time value fk
+4 John Smith 6 NULL NULL NULL NULL NULL
+5 John Smith 7 NULL NULL NULL NULL NULL
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 2 row with ties;
+id first_name last_name score id location time value fk
+4 John Smith 6 NULL NULL NULL NULL NULL
+5 John Smith 7 NULL NULL NULL NULL NULL
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 3 row with ties;
+id first_name last_name score id location time value fk
+1 Alice Fowler 5 1 home 2020-01-01 10:00:00 10 1
+2 John Doe 6 2 home 2020-01-01 11:00:00 11 2
+2 John Doe 6 6 home 2020-01-01 15:00:00 13 2
+3 John Smith 6 3 home 2020-01-01 12:00:00 12 3
+3 John Smith 6 4 home 2020-01-01 13:00:00 13 3
+3 John Smith 6 5 home 2020-01-01 14:00:00 13 3
+4 John Smith 6 NULL NULL NULL NULL NULL
+5 John Smith 7 NULL NULL NULL NULL NULL
+6 John Elton 8.1 7 home 2020-01-01 16:00:00 13 6
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+offset 2 rows
+fetch first 1 row with ties;
+id first_name last_name score id location time value fk
+1 Alice Fowler 5 1 home 2020-01-01 10:00:00 10 1
+2 John Doe 6 2 home 2020-01-01 11:00:00 11 2
+2 John Doe 6 6 home 2020-01-01 15:00:00 13 2
+3 John Smith 6 3 home 2020-01-01 12:00:00 12 3
+3 John Smith 6 4 home 2020-01-01 13:00:00 13 3
+3 John Smith 6 5 home 2020-01-01 14:00:00 13 3
+6 John Elton 8.1 7 home 2020-01-01 16:00:00 13 6
+#
+# Test union-like operator with multiple fetch first clauses.
+#
+select * from t1 order by 1 fetch first 3 rows with ties;
+id first_name last_name score
+1 Alice Fowler 5
+2 John Doe 6
+3 John Smith 6
+select * from t1 order by first_name desc fetch first 3 rows with ties;
+id first_name last_name score
+8 Silvia Ganush 10
+2 John Doe 6
+3 John Smith 6
+4 John Smith 6
+5 John Smith 7
+6 John Elton 8.1
+(select * from t1 order by 1 fetch first 3 rows with ties)
+intersect
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+fetch first 1 row with ties;
+id first_name last_name score
+2 John Doe 6
+3 John Smith 6
+(select * from t1 order by 1 fetch first 3 rows with ties)
+except
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+fetch first 1 row with ties;
+id first_name last_name score
+1 Alice Fowler 5
+(select * from t1 order by 1 fetch first 3 rows with ties)
+except
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+offset 1 rows
+fetch first 1 row with ties;
+id first_name last_name score
+select sum(score)
+from t1
+order by 1
+fetch first 2 rows with ties;
+sum(score)
+57.1
+select sum(score)
+from t1
+group by id
+order by 1
+fetch first 2 rows with ties;
+sum(score)
+5
+6
+6
+6
+drop table t1;
+drop table t2;
+#
+# Test SQL_CALC_FOUND_ROWS
+#
+create table t1 (a int, b int, index (a,b));
+insert into t1 values (1,1), (1,2), (1,3), (2,1), (2,2), (3,1);
+select SQL_CALC_FOUND_ROWS a, b, count(*)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+a b count(*)
+1 1 1
+1 2 1
+1 3 1
+SELECT FOUND_ROWS();
+FOUND_ROWS()
+6
+select SQL_CALC_FOUND_ROWS a, b
+from t1
+order by a
+fetch first 1 rows with ties;
+a b
+1 1
+1 2
+1 3
+SELECT FOUND_ROWS();
+FOUND_ROWS()
+6
+#
+# Test index read optimization with ORDER BY as sub part of GROUP BY
+#
+explain select a, b, count(*)
+from t1
+group by a, b
+order by a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 10 NULL 6 Using index
+explain select a, b, count(*)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 10 NULL 1 Using index
+#
+# Test FETCH ... WITH TIES / ONLY with prepared statements
+#
+prepare s from "select a, b from t1 order by a fetch first ? rows with ties";
+set @a='qwe';
+execute s using @a;
+a b
+set @a=-1;
+execute s using @a;
+ERROR HY000: Incorrect arguments to EXECUTE
+prepare s2 from "select a, b from t1 order by a offset ? rows fetch first ? rows with ties";
+set @offset=1;
+set @limit_count= 2;
+execute s2 using @offset, @limit_count;
+a b
+1 2
+1 3
+execute s2 using @offset, 3;
+a b
+1 2
+1 3
+2 1
+2 2
+execute s2 using -1, 3;
+ERROR HY000: Incorrect arguments to EXECUTE
+#
+# Test with ties with a constant order by.
+#
+select a, b
+from t1
+order by 'x'
+fetch first 2 rows with ties;
+a b
+1 1
+1 2
+1 3
+2 1
+2 2
+3 1
+select b, sum(a)
+from t1
+group by b
+order by 'x', 'y', 'z'
+fetch first 2 rows with ties;
+b sum(a)
+1 6
+2 3
+3 1
+#
+# Test with ties when group by is used and order by gets eliminated.
+#
+select b, sum(a)
+from t1
+group by b
+order by 'x', 'y', 'z'
+fetch first 2 rows with ties;
+b sum(a)
+1 6
+2 3
+3 1
+#
+# Test an ill formed SELECT using MySQL/MariaDBs group by extension
+# of not requiring all non-aggregate fields to be part of group
+# by.
+#
+select b, a, sum(a)
+from t1
+group by a
+order by b, 'x', 'y', 'z'
+fetch first 2 rows with ties;
+b a sum(a)
+1 1 3
+1 2 4
+1 3 3
+delete from t1;
+insert into t1 values (1,1), (1,2), (1,3), (2,1), (2,2), (3,2), (3, 3);
+select b, a, sum(a)
+from t1
+group by a
+order by b, 'x', 'y', 'z'
+fetch first 1 rows with ties;
+b a sum(a)
+1 1 3
+1 2 4
+select b, a, sum(a)
+from t1
+group by a
+order by 'x', b, 'x', 'y', 'z'
+fetch first 1 rows with ties;
+b a sum(a)
+1 1 3
+1 2 4
+select b, a, sum(a)
+from t1
+group by a
+order by 'x', 'y', b
+fetch first 1 rows with ties;
+b a sum(a)
+1 1 3
+1 2 4
+#
+# Test with ties when order by a const column is used.
+#
+select a, b
+from t1
+order by a, 'a'
+fetch first 2 rows with ties;
+a b
+1 1
+1 2
+1 3
+#
+# Order by aggregates.
+#
+select a, b, sum(a)
+from t1
+group by a, b
+order by sum(a)
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+# Test different sum function in order by, not present in select list.
+select a, b, sum(a)
+from t1
+group by a, b
+order by sum(b)
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+2 1 2
+# Test aggregates with constant columns in order by.
+select a, b, sum(a)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, 'x'
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b
+fetch first 2 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+select a, b, sum(a)
+from t1
+group by a, 'x', b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+select a, b, sum(a)
+from t1
+group by 'x', a, b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by 'x', a, 'x', b, 't', b
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by b, 't', b
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+2 1 2
+#
+# Test with subqueries in order by
+#
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1)
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+2 1 2
+2 2 2
+3 2 3
+3 3 3
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1), a
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1), a
+fetch first 1 rows with ties;
+a b sum(a)
+1 1 1
+1 2 1
+1 3 1
+drop table t1;
+#
+# MDEV-25441
+# WITH TIES is not respected with SQL_BUFFER_RESULT and constant in ORDER BY
+#
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+explain SELECT SQL_BUFFER_RESULT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using temporary
+SELECT SQL_BUFFER_RESULT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+f
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+SELECT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+f
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+drop table t1;
+#
+# MDEV-25481: Memory leak upon query WITH TIES involving a blob
+#
+CREATE TABLE t (a TEXT);
+INSERT INTO t VALUES ('foo'),('bar');
+SELECT a FROM t ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+a
+bar
+foo
+DROP TABLE t;
+#
+# MDEV-30324: Wrong result upon SELECT DISTINCT .. WITH TIES using index
+#
+CREATE TABLE t1 (a int, b char(3), KEY (a));
+INSERT INTO t1 VALUES (2,'foo'),(3,'bar'),(3,'bar'),(3,'zzz');
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 1 ROWS WITH TIES;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 1 Using temporary
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 1 ROWS WITH TIES;
+a b
+2 foo
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 2 Using temporary
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+a b
+2 foo
+3 bar
+3 zzz
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 3 ROWS WITH TIES;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 3 ROWS WITH TIES;
+a b
+2 foo
+3 bar
+3 zzz
+DROP TABLE t1;
diff --git a/mysql-test/main/fetch_first.test b/mysql-test/main/fetch_first.test
new file mode 100644
index 00000000000..98bbf1ca06b
--- /dev/null
+++ b/mysql-test/main/fetch_first.test
@@ -0,0 +1,1080 @@
+--echo #
+--echo # The following entries are meant for testing the parser, ensuring
+--echo # the right values are passed down to the executor, for all possible
+--echo # syntax combinations.
+--echo #
+--echo # Test basic syntax.
+--echo #
+
+create table t1 (a int);
+create table t_keyword (`offset` int);
+
+insert into t1 values (1), (1), (2), (3), (2);
+insert into t_keyword values (1), (1), (2), (3), (2);
+
+--echo #
+--echo # Make sure the FETCH clause addition didn't introduce problems with
+--echo # the offset keyword.
+--echo #
+#enable after fix MDEV-29645
+--disable_view_protocol
+select * from t1
+order by a
+offset 2 rows;
+
+
+--sorted_result
+select * from t1
+offset 2 rows;
+--enable_view_protocol
+
+--echo #
+--echo # Offset is now a reserved keyword. Column names can not have that name
+--echo # without escaping the identifier.
+--echo #
+--error 1064
+select * from t_keyword
+order by offset;
+
+select * from t_keyword
+order by `offset`;
+
+
+--echo #
+--echo # Test syntax without a specific limit. (implicit one row)
+--echo # Test the alias between row / rows and first / next.
+--echo # Test ONLY vs WITH TIES.
+--echo #
+select * from t1
+fetch first row only;
+
+select * from t1
+fetch first rows only;
+
+select * from t1
+fetch next row only;
+
+select * from t1
+fetch next rows only;
+
+--echo #
+--echo # Row / rows are mandatory after offset <n>
+--echo #
+--error 1064
+select * from t1
+order by a
+offset 2
+fetch first row only;
+
+--error 1064
+select * from t1
+order by a
+offset 2;
+
+select * from t1
+order by a
+offset 2 row
+fetch first row only;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first row only;
+
+--echo #
+--echo # Include offset before fetch clause.
+--echo #
+select * from t1
+order by a
+offset 2 rows
+fetch first row only;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first rows only;
+
+select * from t1
+offset 2 rows
+fetch next row only;
+
+select * from t1
+offset 2 rows
+fetch next rows only;
+
+
+--echo #
+--echo # Repeat the tests, but now with WITH TIES.
+--echo # WITH TIES requires order by.
+--echo #
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch first row with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch first rows with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch next row with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch next rows with ties;
+
+select * from t1
+order by a
+fetch first row with ties;
+
+select * from t1
+order by a
+fetch first rows with ties;
+
+select * from t1
+order by a
+fetch next row with ties;
+
+select * from t1
+order by a
+fetch next rows with ties;
+
+--echo #
+--echo # Include offset before fetch clause.
+--echo #
+
+select * from t1
+order by a
+offset 2 rows
+fetch first row with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first rows with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch next row with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch next rows with ties;
+
+
+--echo #
+--echo # Test syntax with a specific limit
+--echo #
+select * from t1
+fetch first 3 row only;
+
+select * from t1
+fetch first 3 rows only;
+
+select * from t1
+fetch next 3 row only;
+
+select * from t1
+fetch next 3 rows only;
+
+--echo #
+--echo # Include offset before fetch clause.
+--echo #
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 row only;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 rows only;
+
+select * from t1
+offset 2 rows
+fetch next 3 row only;
+
+select * from t1
+offset 2 rows
+fetch next 3 rows only;
+
+
+--echo #
+--echo # Repeat the tests, but now with WITH TIES.
+--echo # WITH TIES requires order by.
+--echo #
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch first 3 row with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch first 3 rows with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch next 3 row with ties;
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+fetch next 3 rows with ties;
+
+select * from t1
+order by a
+fetch first 3 row with ties;
+
+select * from t1
+order by a
+fetch first 3 rows with ties;
+
+select * from t1
+order by a
+fetch next 3 row with ties;
+
+select * from t1
+order by a
+fetch next 3 rows with ties;
+
+--echo #
+--echo # Include offset before fetch clause.
+--echo #
+
+--error ER_WITH_TIES_NEEDS_ORDER
+select * from t1
+offset 2 rows
+fetch first row with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 row with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch next 3 row with ties;
+
+select * from t1
+order by a
+offset 2 rows
+fetch next 3 rows with ties;
+
+
+drop table t1;
+drop table t_keyword;
+
+--echo #
+--echo # Test behaviour with a simple select.
+--echo #
+
+create table t1 (id int, first_name varchar(100), last_name varchar(100), score double);
+insert into t1 values
+ (1, 'Alice', 'Fowler', 5),
+ (2, 'John', 'Doe', 6),
+ (3, 'John', 'Smith', 6),
+ (4, 'John', 'Smith', 6),
+ (5, 'John', 'Smith', 7),
+ (6, 'John', 'Elton', 8.1),
+ (7, 'Bob', 'Trasc', 9),
+ (8, 'Silvia', 'Ganush', 10);
+
+create table t2
+ (id int,
+ location varchar(100),
+ fk int,
+ constraint `fk_t1`
+ FOREIGN KEY (fk) REFERENCES t1 (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT);
+insert into t2 values
+ (1, 'L1', 1),
+ (2, 'L2', 2),
+ (3, 'L3', 3),
+ (4, 'L3', 4),
+ (5, 'L4', 5),
+ (6, 'L4', 6),
+ (7, 'L4', 7),
+ (7, null, 8);
+
+
+select * from t1
+order by id
+fetch first 3 rows only;
+
+select * from t1
+order by id
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name
+fetch first 3 rows only;
+
+select * from t1
+order by first_name
+fetch first 3 rows with ties;
+
+--echo #
+--echo # Test multi-part order by.
+--echo #
+select * from t1
+order by first_name, last_name
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+fetch first 4 rows with ties;
+
+
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows only;
+
+select * from t1
+order by first_name, last_name
+offset 1 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+offset 2 rows
+fetch first 3 rows only;
+
+select * from t1
+order by first_name, last_name
+offset 2 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+offset 3 rows
+fetch first 3 rows only;
+
+select * from t1
+order by first_name, last_name
+offset 3 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+offset 4 rows
+fetch first 3 rows only;
+
+select * from t1
+order by first_name, last_name
+offset 4 rows
+fetch first 3 rows with ties;
+
+--echo #
+--echo # Test offset crossing into a new peer-group.
+--echo #
+select * from t1
+order by first_name, last_name
+offset 5 rows
+fetch first 3 rows with ties;
+
+select * from t1
+order by first_name, last_name
+offset 5 rows
+fetch first 3 rows only;
+
+--echo #
+--echo # Simple join with 2 tables, order by without columns in the
+--echo # second table and also with columns in the second table.
+--echo #
+--echo # Cover both only and with ties.
+--echo #
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t1.first_name, t1.last_name
+fetch first 3 rows only;
+
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location, t1.first_name, t1.last_name
+fetch first 3 rows only;
+
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location, t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+
+--echo #
+--echo # Test descending order by.
+--echo #
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location desc, t1.first_name, t1.last_name
+fetch first 3 rows only;
+
+--sorted_result
+select * from t2
+order by t2.location desc
+fetch first 2 rows with ties;
+
+--sorted_result
+select * from t2
+order by t2.location desc
+offset 1 rows
+fetch first 2 rows with ties;
+
+--sorted_result
+select * from t2
+order by t2.location desc
+offset 2 rows
+fetch first 2 rows with ties;
+
+--echo #
+--echo # Test a join with descending order by.
+--echo #
+select t1.id, t1.first_name, t1.last_name, t1.score, t2.location
+from t1 inner join t2 on t1.id = t2.fk
+order by t2.location desc, t1.first_name, t1.last_name
+fetch first 3 rows with ties;
+
+--echo #
+--echo # Test subqueries.
+--echo #
+select * from (
+ select * from t2
+ order by t2.location desc
+ offset 2 rows
+ fetch first 2 rows with ties
+) temp;
+
+
+select * from t2
+order by t2.location desc
+offset 0 rows
+fetch first 2 rows with ties;
+
+create view v1 as (
+ select * from t2
+ order by t2.location desc
+ offset 0 rows
+ fetch first 2 rows with ties
+);
+
+create view v2 as (
+ select * from t2
+ order by t2.location desc
+ offset 1 rows
+ fetch first 2 rows with ties
+);
+
+create view v3 as (
+ select * from t2
+ order by t2.location desc
+ offset 2 rows
+ fetch first row with ties
+);
+
+
+
+select * from v1;
+select * from v2;
+select * from v3;
+
+show create view v1;
+show create view v2;
+show create view v3;
+
+--echo #
+--echo # Test joins with views and order by referenced from the view.
+--echo #
+
+--sorted_result
+select *
+from t1 inner join v1 on t1.id = v1.fk
+order by v1.location desc, t1.first_name
+offset 1 rows
+fetch first 1 rows with ties;
+
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name;
+
+--echo #
+--echo # Test with ties with group by. Make sure that if order by is a less
+--echo # specific sort of group by, that WITH TIES still gets executed.
+--echo #
+
+explain
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+
+--sorted_result
+select first_name, last_name, sum(score)
+from t1
+group by first_name, last_name
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+
+
+
+drop table t1;
+drop table t2;
+drop view v1;
+drop view v2;
+drop view v3;
+
+--echo #
+--echo # Test with ties when an index is used to provide the order by.
+--echo #
+create table t1 (id int, first_name varchar(100), last_name varchar(100), score double);
+
+create index t1_name on t1 (first_name, last_name);
+
+insert into t1 values
+ (1, 'Alice', 'Fowler', 5),
+ (2, 'John', 'Doe', 6),
+ (3, 'John', 'Smith', 6),
+ (4, 'John', 'Smith', 6),
+ (5, 'John', 'Smith', 7),
+ (6, 'John', 'Elton', 8.1),
+ (7, 'Bob', 'Trasc', 9),
+ (8, 'Silvia', 'Ganush', 10);
+
+explain select first_name, last_name
+from t1
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+
+explain select first_name, last_name
+from t1
+order by first_name desc
+fetch first 2 rows with ties;
+
+
+select first_name, last_name
+from t1
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+
+select first_name, last_name
+from t1
+order by first_name desc
+fetch first 2 rows with ties;
+
+
+select first_name, last_name
+from t1
+order by first_name desc
+offset 1 rows
+fetch first 2 rows with ties;
+
+select first_name, last_name
+from t1
+order by first_name desc
+offset 4 rows
+fetch first 2 rows with ties;
+
+select first_name, last_name
+from t1
+order by first_name desc
+offset 4 rows
+fetch first 3 rows with ties;
+
+explain select first_name, last_name
+from t1
+where first_name != 'John'
+order by first_name
+fetch first 2 rows with ties;
+
+select first_name, last_name
+from t1
+where first_name != 'John'
+order by first_name
+fetch first 2 rows with ties;
+
+
+
+select first_name, last_name
+from t1
+where first_name != 'John'
+group by first_name, last_name
+order by first_name
+fetch first 2 rows with ties;
+
+
+--echo #
+--echo # Test CTE support.
+--echo #
+explain with temp_table as (
+ select first_name, last_name
+ from t1
+ where first_name != 'John'
+ group by first_name, last_name
+ order by first_name
+ fetch first 2 rows with ties
+)
+select * from temp_table
+order by first_name, last_name;
+
+with temp_table as (
+ select first_name, last_name
+ from t1
+ group by first_name, last_name
+ order by first_name
+ fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name, last_name;
+
+with temp_table as (
+ select first_name, last_name
+ from t1
+ group by first_name, last_name
+ order by first_name
+ fetch first 3 rows with ties
+)
+select * from temp_table
+order by last_name
+fetch first 3 rows with ties;
+
+--sorted_result
+with temp_table as (
+ select first_name, last_name
+ from t1
+ group by first_name, last_name
+ order by first_name
+ fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name
+fetch first 3 rows with ties;
+
+--sorted_result
+with temp_table as (
+ select first_name, last_name
+ from t1
+ group by first_name, last_name
+ order by first_name
+ fetch first 3 rows with ties
+)
+select * from temp_table
+order by first_name
+offset 1 rows
+fetch first 2 rows with ties;
+
+#enable after fix MDEV-29645
+--disable_view_protocol
+select first_name, row_number() over () rn
+from t1
+order by rn
+offset 1 rows
+fetch first 2 rows with ties;
+
+select first_name, row_number() over () rn
+from t1
+order by rn desc
+offset 1 rows
+fetch first 2 rows with ties;
+--enable_view_protocol
+
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+fetch first 3 rows with ties;
+
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+offset 1 rows
+fetch first 2 rows with ties;
+
+select first_name, score, rank() over (ORDER BY score)
+from t1
+order by rank() over (ORDER BY score)
+fetch first 6 rows with ties;
+
+
+--echo #
+--echo # Test nulls.
+--echo #
+create table t2 (id int, location varchar(100), time datetime, value int, fk int);
+
+insert into t2 values (1, 'home', '2020-01-01 10:00', 10, 1);
+insert into t2 values (2, 'home', '2020-01-01 11:00', 11, 2);
+insert into t2 values (3, 'home', '2020-01-01 12:00', 12, 3);
+insert into t2 values (4, 'home', '2020-01-01 13:00', 13, 3);
+insert into t2 values (5, 'home', '2020-01-01 14:00', 13, 3);
+insert into t2 values (6, 'home', '2020-01-01 15:00', 13, 2);
+insert into t2 values (7, 'home', '2020-01-01 16:00', 13, 6);
+insert into t2 values (8, 'outside', '2020-01-01 17:00', 17, 6);
+insert into t2 values (9, 'outside', '2020-01-01 18:00', 17, 6);
+insert into t2 values (10, 'outside', '2020-01-01 19:00', 17, 8);
+insert into t2 values (11, 'outside', '2020-01-01 20:00', 16, 7);
+insert into t2 values (12, 'outside', '2020-01-01 21:00', 16, 7);
+
+--sorted_result
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location;
+
+--sorted_result
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 1 row with ties;
+
+--sorted_result
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 2 row with ties;
+
+--sorted_result
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+fetch first 3 row with ties;
+
+--sorted_result
+select *
+from t1 left join t2 on t1.id = t2.fk
+order by t2.location
+offset 2 rows
+fetch first 1 row with ties;
+
+
+--echo #
+--echo # Test union-like operator with multiple fetch first clauses.
+--echo #
+select * from t1 order by 1 fetch first 3 rows with ties;
+select * from t1 order by first_name desc fetch first 3 rows with ties;
+
+--sorted_result
+(select * from t1 order by 1 fetch first 3 rows with ties)
+intersect
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+fetch first 1 row with ties;
+
+--sorted_result
+(select * from t1 order by 1 fetch first 3 rows with ties)
+except
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+fetch first 1 row with ties;
+
+--sorted_result
+(select * from t1 order by 1 fetch first 3 rows with ties)
+except
+(select * from t1 order by first_name desc fetch first 3 rows with ties)
+order by first_name
+offset 1 rows
+fetch first 1 row with ties;
+
+--sorted_result
+select sum(score)
+from t1
+order by 1
+fetch first 2 rows with ties;
+
+--sorted_result
+select sum(score)
+from t1
+group by id
+order by 1
+fetch first 2 rows with ties;
+
+drop table t1;
+drop table t2;
+
+--echo #
+--echo # Test SQL_CALC_FOUND_ROWS
+--echo #
+create table t1 (a int, b int, index (a,b));
+insert into t1 values (1,1), (1,2), (1,3), (2,1), (2,2), (3,1);
+
+#enable after fix MDEV-29645
+--disable_view_protocol
+select SQL_CALC_FOUND_ROWS a, b, count(*)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+SELECT FOUND_ROWS();
+
+--sorted_result
+select SQL_CALC_FOUND_ROWS a, b
+from t1
+order by a
+fetch first 1 rows with ties;
+SELECT FOUND_ROWS();
+--enable_view_protocol
+
+--echo #
+--echo # Test index read optimization with ORDER BY as sub part of GROUP BY
+--echo #
+explain select a, b, count(*)
+from t1
+group by a, b
+order by a;
+
+explain select a, b, count(*)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+
+--echo #
+--echo # Test FETCH ... WITH TIES / ONLY with prepared statements
+--echo #
+
+prepare s from "select a, b from t1 order by a fetch first ? rows with ties";
+
+set @a='qwe';
+execute s using @a;
+
+set @a=-1;
+--error ER_WRONG_ARGUMENTS
+execute s using @a;
+
+prepare s2 from "select a, b from t1 order by a offset ? rows fetch first ? rows with ties";
+set @offset=1;
+set @limit_count= 2;
+execute s2 using @offset, @limit_count;
+
+execute s2 using @offset, 3;
+
+--error ER_WRONG_ARGUMENTS
+execute s2 using -1, 3;
+
+--echo #
+--echo # Test with ties with a constant order by.
+--echo #
+select a, b
+from t1
+order by 'x'
+fetch first 2 rows with ties;
+
+select b, sum(a)
+from t1
+group by b
+order by 'x', 'y', 'z'
+fetch first 2 rows with ties;
+
+--echo #
+--echo # Test with ties when group by is used and order by gets eliminated.
+--echo #
+--sorted_result
+select b, sum(a)
+from t1
+group by b
+order by 'x', 'y', 'z'
+fetch first 2 rows with ties;
+
+--echo #
+--echo # Test an ill formed SELECT using MySQL/MariaDBs group by extension
+--echo # of not requiring all non-aggregate fields to be part of group
+--echo # by.
+--echo #
+--sorted_result
+select b, a, sum(a)
+from t1
+group by a
+order by b, 'x', 'y', 'z'
+fetch first 2 rows with ties;
+
+delete from t1;
+insert into t1 values (1,1), (1,2), (1,3), (2,1), (2,2), (3,2), (3, 3);
+
+--sorted_result
+select b, a, sum(a)
+from t1
+group by a
+order by b, 'x', 'y', 'z'
+fetch first 1 rows with ties;
+
+--sorted_result
+select b, a, sum(a)
+from t1
+group by a
+order by 'x', b, 'x', 'y', 'z'
+fetch first 1 rows with ties;
+
+--sorted_result
+select b, a, sum(a)
+from t1
+group by a
+order by 'x', 'y', b
+fetch first 1 rows with ties;
+
+
+--echo #
+--echo # Test with ties when order by a const column is used.
+--echo #
+select a, b
+from t1
+order by a, 'a'
+fetch first 2 rows with ties;
+
+--echo #
+--echo # Order by aggregates.
+--echo #
+--sorted_result
+select a, b, sum(a)
+from t1
+group by a, b
+order by sum(a)
+fetch first 1 rows with ties;
+
+--echo # Test different sum function in order by, not present in select list.
+--sorted_result
+select a, b, sum(a)
+from t1
+group by a, b
+order by sum(b)
+fetch first 1 rows with ties;
+
+--echo # Test aggregates with constant columns in order by.
+--sorted_result
+select a, b, sum(a)
+from t1
+group by a, b
+order by a
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, 'x'
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b
+fetch first 2 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, 'x', b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by 'x', a, b
+order by a, b, 'x'
+fetch first 1 rows with ties;
+
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by 'x', a, 'x', b, 't', b
+fetch first 1 rows with ties;
+
+--sorted_result
+select a, b, sum(a)
+from t1
+group by a, b
+order by b, 't', b
+fetch first 1 rows with ties;
+
+--echo #
+--echo # Test with subqueries in order by
+--echo #
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1)
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1), a
+fetch first 1 rows with ties;
+
+select a, b, sum(a)
+from t1
+group by a, b
+order by (select 1), a
+fetch first 1 rows with ties;
+
+drop table t1;
+
+--echo #
+--echo # MDEV-25441
+--echo # WITH TIES is not respected with SQL_BUFFER_RESULT and constant in ORDER BY
+--echo #
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
+
+explain SELECT SQL_BUFFER_RESULT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+SELECT SQL_BUFFER_RESULT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+SELECT 1 AS f FROM t1 ORDER BY f FETCH NEXT 2 ROW WITH TIES;
+
+drop table t1;
+
+--echo #
+--echo # MDEV-25481: Memory leak upon query WITH TIES involving a blob
+--echo #
+CREATE TABLE t (a TEXT);
+INSERT INTO t VALUES ('foo'),('bar');
+SELECT a FROM t ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+
+# Cleanup
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-30324: Wrong result upon SELECT DISTINCT .. WITH TIES using index
+--echo #
+CREATE TABLE t1 (a int, b char(3), KEY (a));
+INSERT INTO t1 VALUES (2,'foo'),(3,'bar'),(3,'bar'),(3,'zzz');
+
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 1 ROWS WITH TIES;
+--sorted_result
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 1 ROWS WITH TIES;
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+--sorted_result
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 2 ROWS WITH TIES;
+EXPLAIN SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 3 ROWS WITH TIES;
+--sorted_result
+SELECT DISTINCT a, b FROM t1 ORDER BY a FETCH FIRST 3 ROWS WITH TIES;
+
+# Cleanup
+DROP TABLE t1;
diff --git a/mysql-test/main/flush-innodb.result b/mysql-test/main/flush-innodb.result
index 21e5bda7785..2c886e4f9fc 100644
--- a/mysql-test/main/flush-innodb.result
+++ b/mysql-test/main/flush-innodb.result
@@ -60,7 +60,7 @@ DROP TABLE export;
CREATE VIEW v1 AS SELECT 1;
CREATE TEMPORARY TABLE t1 (a INT);
FLUSH TABLES v1 FOR EXPORT;
-ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
+UNLOCK TABLES;
FLUSH TABLES t1 FOR EXPORT;
ERROR 42S02: Table 'test.t1' doesn't exist
FLUSH TABLES non_existent FOR EXPORT;
diff --git a/mysql-test/main/flush-innodb.test b/mysql-test/main/flush-innodb.test
index 36d0d1e6e5e..7665ae5e077 100644
--- a/mysql-test/main/flush-innodb.test
+++ b/mysql-test/main/flush-innodb.test
@@ -97,8 +97,8 @@ DROP TABLE export;
CREATE VIEW v1 AS SELECT 1;
CREATE TEMPORARY TABLE t1 (a INT);
---error ER_WRONG_OBJECT
FLUSH TABLES v1 FOR EXPORT;
+UNLOCK TABLES;
--error ER_NO_SUCH_TABLE
FLUSH TABLES t1 FOR EXPORT;
--error ER_NO_SUCH_TABLE
diff --git a/mysql-test/main/flush.result b/mysql-test/main/flush.result
index 39e0b9432fe..584e79e72db 100644
--- a/mysql-test/main/flush.result
+++ b/mysql-test/main/flush.result
@@ -295,16 +295,16 @@ create view v1 as select 1;
create view v2 as select * from t1;
create view v3 as select * from v2;
flush table v1, v2, v3 with read lock;
-ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
+unlock tables;
flush table v1 with read lock;
-ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
+unlock tables;
flush table v2 with read lock;
-ERROR HY000: 'test.v2' is not of type 'BASE TABLE'
+unlock tables;
flush table v3 with read lock;
-ERROR HY000: 'test.v3' is not of type 'BASE TABLE'
+unlock tables;
create temporary table v1 (a int);
flush table v1 with read lock;
-ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
+unlock tables;
drop view v1;
create table v1 (a int);
flush table v1 with read lock;
@@ -556,9 +556,107 @@ UNLOCK TABLES;
DROP VIEW v1;
DROP TABLE t1;
#
+# MDEV-15888 Implement FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK for views.
+#
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+flush table v1 with read lock;
+connect con1, localhost, root;
+insert into v1 values (4);
+connection default;
+# Wait until INSERT starts to wait for FTWRL to go away.
+select * from t1;
+a
+1
+2
+3
+unlock tables;
+connection con1;
+connection default;
+select * from t1;
+a
+1
+2
+3
+4
+flush table v2 with read lock;
+connection con1;
+insert into t1 values (5);
+connection default;
+# Wait until INSERT starts to wait for FTWRL to go away.
+select * from t1;
+a
+1
+2
+3
+4
+unlock tables;
+connection con1;
+connection default;
+select * from t1;
+a
+1
+2
+3
+4
+5
+drop view v1, v2;
+drop table t1;
+disconnect con1;
+#
+# MDEV-25837 Assertion `thd->locked_tables_mode == LTM_NONE' failed in Locked_tables_list::init_locked_tables.
+#
+CREATE FUNCTION f() RETURNS INTEGER RETURN 1;
+CREATE TABLE t (a INT);
+CREATE VIEW v AS SELECT 2 FROM t WHERE f() < 3;
+FLUSH TABLE v WITH READ LOCK;
+UNLOCK TABLES;
+DROP VIEW v;
+DROP FUNCTION f;
+DROP TABLE t;
+#
# Test FLUSH THREADS
#
+set @save_thread_cache_size=@@global.thread_cache_size;
+set @@global.thread_cache_size=0;
flush threads;
show status like "Threads_cached";
Variable_name Value
Threads_cached 0
+set @@global.thread_cache_size=@save_thread_cache_size;
+#
+# MDEV-25906: SIGSEGV in flush_tables_with_read_lock on FTWRL or FTFE | SIGSEGV in ha_maria::extra
+#
+CREATE VIEW v0 AS SELECT 1;
+CREATE VIEW v1 AS SELECT 1 FROM (SELECT 1) AS d;
+CREATE VIEW v2 AS SELECT * FROM v1;
+FLUSH TABLE v0 WITH READ LOCK;
+DROP VIEW v0;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+FLUSH TABLE v1 WITH READ LOCK;
+DROP VIEW v1;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+FLUSH TABLE v2 WITH READ LOCK;
+DROP VIEW v2;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+FLUSH TABLE v0 FOR EXPORT;
+DROP VIEW v0;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+FLUSH TABLE v1 FOR EXPORT;
+DROP VIEW v1;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+FLUSH TABLE v2 FOR EXPORT;
+DROP VIEW v2;
+ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
+UNLOCK TABLES;
+DROP VIEW v2, v1, v0;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/flush.test b/mysql-test/main/flush.test
index c324a839d77..887c48ef018 100644
--- a/mysql-test/main/flush.test
+++ b/mysql-test/main/flush.test
@@ -379,17 +379,17 @@ create view v1 as select 1;
create view v2 as select * from t1;
create view v3 as select * from v2;
---error ER_WRONG_OBJECT
flush table v1, v2, v3 with read lock;
---error ER_WRONG_OBJECT
+unlock tables;
flush table v1 with read lock;
---error ER_WRONG_OBJECT
+unlock tables;
flush table v2 with read lock;
---error ER_WRONG_OBJECT
+unlock tables;
flush table v3 with read lock;
+unlock tables;
create temporary table v1 (a int);
---error ER_WRONG_OBJECT
flush table v1 with read lock;
+unlock tables;
drop view v1;
create table v1 (a int);
flush table v1 with read lock;
@@ -672,10 +672,120 @@ UNLOCK TABLES;
DROP VIEW v1;
DROP TABLE t1;
---enable_service_connection
+
+--echo #
+--echo # MDEV-15888 Implement FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK for views.
+--echo #
+
+create table t1 (a int);
+insert into t1 values (1), (2), (3);
+create view v1 as select * from t1;
+create view v2 as select * from v1;
+
+flush table v1 with read lock;
+connect(con1, localhost, root);
+--send insert into v1 values (4)
+--sleep 1
+connection default;
+--echo # Wait until INSERT starts to wait for FTWRL to go away.
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "Waiting for table metadata lock"
+ and info = "insert into v1 values (4)";
+--source include/wait_condition.inc
+select * from t1;
+unlock tables;
+
+connection con1;
+reap;
+
+connection default;
+select * from t1;
+
+flush table v2 with read lock;
+connection con1;
+--send insert into t1 values (5)
+--sleep 1
+connection default;
+--echo # Wait until INSERT starts to wait for FTWRL to go away.
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where state = "Waiting for table metadata lock"
+ and info = "insert into t1 values (5)";
+--source include/wait_condition.inc
+select * from t1;
+unlock tables;
+
+connection con1;
+reap;
+
+connection default;
+select * from t1;
+
+drop view v1, v2;
+drop table t1;
+disconnect con1;
+
+--echo #
+--echo # MDEV-25837 Assertion `thd->locked_tables_mode == LTM_NONE' failed in Locked_tables_list::init_locked_tables.
+--echo #
+
+CREATE FUNCTION f() RETURNS INTEGER RETURN 1;
+CREATE TABLE t (a INT);
+CREATE VIEW v AS SELECT 2 FROM t WHERE f() < 3;
+FLUSH TABLE v WITH READ LOCK;
+
+UNLOCK TABLES;
+DROP VIEW v;
+DROP FUNCTION f;
+DROP TABLE t;
+
--echo #
--echo # Test FLUSH THREADS
--echo #
+set @save_thread_cache_size=@@global.thread_cache_size;
+set @@global.thread_cache_size=0;
flush threads;
show status like "Threads_cached";
+set @@global.thread_cache_size=@save_thread_cache_size;
+
+--echo #
+--echo # MDEV-25906: SIGSEGV in flush_tables_with_read_lock on FTWRL or FTFE | SIGSEGV in ha_maria::extra
+--echo #
+CREATE VIEW v0 AS SELECT 1;
+CREATE VIEW v1 AS SELECT 1 FROM (SELECT 1) AS d;
+CREATE VIEW v2 AS SELECT * FROM v1;
+
+FLUSH TABLE v0 WITH READ LOCK;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v0;
+UNLOCK TABLES;
+FLUSH TABLE v1 WITH READ LOCK;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v1;
+UNLOCK TABLES;
+FLUSH TABLE v2 WITH READ LOCK;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v2;
+UNLOCK TABLES;
+
+FLUSH TABLE v0 FOR EXPORT;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v0;
+UNLOCK TABLES;
+FLUSH TABLE v1 FOR EXPORT;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v1;
+UNLOCK TABLES;
+FLUSH TABLE v2 FOR EXPORT;
+--error ER_LOCK_OR_ACTIVE_TRANSACTION
+DROP VIEW v2;
+UNLOCK TABLES;
+DROP VIEW v2, v1, v0;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
+
+--enable_service_connection
diff --git a/mysql-test/main/flush_notembedded.result b/mysql-test/main/flush_notembedded.result
new file mode 100644
index 00000000000..25ddeba17d3
--- /dev/null
+++ b/mysql-test/main/flush_notembedded.result
@@ -0,0 +1,68 @@
+#
+# MDEV-15888 Implement FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK for views.
+#
+#
+# privilege checks with views
+#
+create database mysqltest1;
+create table mysqltest1.t1 (a int);
+create user u1@localhost;
+grant reload on *.* to u1@localhost;
+grant select on mysqltest1.* to u1@localhost;
+connect u1,localhost,u1;
+flush tables mysqltest1.t1 for export;
+ERROR 42000: Access denied for user 'u1'@'localhost' to database 'mysqltest1'
+create view v as select * from mysqltest1.t1;
+create view v2 as select * from v;
+create view v3 as select * from (select * from mysqltest1.t1) x;
+flush tables v for export;
+ERROR 42000: Access denied for user 'u1'@'localhost' to database 'mysqltest1'
+flush tables v2 for export;
+ERROR 42000: Access denied for user 'u1'@'localhost' to database 'mysqltest1'
+flush tables v3 for export;
+ERROR 42000: Access denied for user 'u1'@'localhost' to database 'mysqltest1'
+disconnect u1;
+connection default;
+drop database mysqltest1;
+drop view v, v2, v3;
+drop user u1@localhost;
+#
+# MDEV-25906: SIGSEGV in flush_tables_with_read_lock on FTWRL or FTFE | SIGSEGV in ha_maria::extra
+#
+CREATE VIEW v0 AS SELECT * FROM information_schema.columns;
+CREATE VIEW v1 AS SELECT * FROM information_schema.collations;
+CREATE VIEW v2 AS SELECT * FROM performance_schema.accounts;
+#
+# first try to flush tables directly
+#
+FLUSH TABLE information_schema.collations WITH READ LOCK;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE performance_schema.accounts WITH READ LOCK;
+ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
+FLUSH TABLE information_schema.colums WITH READ LOCK;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE information_schema.collations FOR EXPORT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE performance_schema.accounts FOR EXPORT;
+ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
+FLUSH TABLE information_schema.colums FOR EXPORT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+#
+# and now via views
+#
+FLUSH TABLE v0 WITH READ LOCK;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE v1 WITH READ LOCK;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE v2 WITH READ LOCK;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+FLUSH TABLE v0 FOR EXPORT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE v1 FOR EXPORT;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+FLUSH TABLE v2 FOR EXPORT;
+ERROR HY000: View 'test.v2' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v0, v1, v2;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/flush_notembedded.test b/mysql-test/main/flush_notembedded.test
new file mode 100644
index 00000000000..af3b8a00c55
--- /dev/null
+++ b/mysql-test/main/flush_notembedded.test
@@ -0,0 +1,66 @@
+source include/not_embedded.inc;
+source include/have_perfschema.inc;
+
+--echo #
+--echo # MDEV-15888 Implement FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK for views.
+--echo #
+
+--echo #
+--echo # privilege checks with views
+--echo #
+create database mysqltest1;
+create table mysqltest1.t1 (a int);
+create user u1@localhost;
+grant reload on *.* to u1@localhost;
+grant select on mysqltest1.* to u1@localhost;
+connect u1,localhost,u1;
+error ER_DBACCESS_DENIED_ERROR;
+flush tables mysqltest1.t1 for export;
+create view v as select * from mysqltest1.t1;
+create view v2 as select * from v;
+create view v3 as select * from (select * from mysqltest1.t1) x;
+error ER_DBACCESS_DENIED_ERROR;
+flush tables v for export;
+error ER_DBACCESS_DENIED_ERROR;
+flush tables v2 for export;
+error ER_DBACCESS_DENIED_ERROR;
+flush tables v3 for export;
+disconnect u1;
+connection default;
+drop database mysqltest1;
+drop view v, v2, v3;
+drop user u1@localhost;
+
+--echo #
+--echo # MDEV-25906: SIGSEGV in flush_tables_with_read_lock on FTWRL or FTFE | SIGSEGV in ha_maria::extra
+--echo #
+CREATE VIEW v0 AS SELECT * FROM information_schema.columns; # Aria
+CREATE VIEW v1 AS SELECT * FROM information_schema.collations; # Heap
+CREATE VIEW v2 AS SELECT * FROM performance_schema.accounts;
+
+--disable_abort_on_error
+--echo #
+--echo # first try to flush tables directly
+--echo #
+FLUSH TABLE information_schema.collations WITH READ LOCK;
+FLUSH TABLE performance_schema.accounts WITH READ LOCK;
+FLUSH TABLE information_schema.colums WITH READ LOCK;
+FLUSH TABLE information_schema.collations FOR EXPORT;
+FLUSH TABLE performance_schema.accounts FOR EXPORT;
+FLUSH TABLE information_schema.colums FOR EXPORT;
+
+--echo #
+--echo # and now via views
+--echo #
+FLUSH TABLE v0 WITH READ LOCK;
+FLUSH TABLE v1 WITH READ LOCK;
+FLUSH TABLE v2 WITH READ LOCK;
+FLUSH TABLE v0 FOR EXPORT;
+FLUSH TABLE v1 FOR EXPORT;
+FLUSH TABLE v2 FOR EXPORT;
+--enable_abort_on_error
+DROP VIEW v0, v1, v2;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/flush_read_lock.result b/mysql-test/main/flush_read_lock.result
index 62a94c38124..948b4fb062b 100644
--- a/mysql-test/main/flush_read_lock.result
+++ b/mysql-test/main/flush_read_lock.result
@@ -1096,6 +1096,14 @@ Success: FTWRL is blocked when 'select f2_base()' is active in another connectio
Success: Was able to run 'select f2_temp()' under FTWRL.
Success: Was able to run 'select f2_temp()' with FTWRL active in another connection.
Success: Was able to run FTWRL while 'select f2_temp()' was active in another connection.
+# 30.f) SELECT ... FOR UPDATE SKIP LOCKED is incompatible with FTWRL.
+Success: Was not able to run 'select count(*) from t1_base for update skip locked' under FTWRL.
+Success: 'select count(*) from t1_base for update skip locked' is blocked by FTWRL active in another connection.
+Success: FTWRL is blocked when 'select count(*) from t1_base for update skip locked' is active in another connection.
+# 30.g) SELECT ... LOCK IN SHARE MODE SKIP LOCKED is compatible with FTWRL.
+Success: Was able to run 'select count(*) from t1_base lock in share mode skip locked' under FTWRL.
+Success: Was able to run 'select count(*) from t1_base lock in share mode skip locked' with FTWRL active in another connection.
+Success: Was able to run FTWRL while 'select count(*) from t1_base lock in share mode skip locked' was active in another connection.
#
# 31) Compatibility of SET statement with FTWRL depends on its
# expression and on whether it is a special SET statement.
@@ -1372,6 +1380,7 @@ unlock tables;
connection default;
# Reap XA COMMIT.
delete from t3_trans;
+INSERT INTO t3_trans VALUES(100);
#
# Check that XA COMMIT / ROLLBACK for prepared transaction from a
# disconnected session is blocked by active FTWRL in another connection.
diff --git a/mysql-test/main/flush_read_lock.test b/mysql-test/main/flush_read_lock.test
index d73820425d2..f24f6e389f1 100644
--- a/mysql-test/main/flush_read_lock.test
+++ b/mysql-test/main/flush_read_lock.test
@@ -1323,6 +1323,16 @@ let $statement= select f2_temp();
let $cleanup_stmt= delete from t1_temp limit 1;
--source include/check_ftwrl_compatible.inc
+--echo # 30.f) SELECT ... FOR UPDATE SKIP LOCKED is incompatible with FTWRL.
+let $statement= select count(*) from t1_base for update skip locked;
+let $cleanup_stmt1= ;
+--source include/check_ftwrl_incompatible.inc
+
+--echo # 30.g) SELECT ... LOCK IN SHARE MODE SKIP LOCKED is compatible with FTWRL.
+let $statement= select count(*) from t1_base lock in share mode skip locked;
+let $cleanup_stmt= ;
+--source include/check_ftwrl_compatible.inc
+
--echo #
--echo # 31) Compatibility of SET statement with FTWRL depends on its
@@ -1679,6 +1689,9 @@ connection default;
--echo # Reap XA COMMIT.
--reap
delete from t3_trans;
+# MDEV-515 takes X-lock on the table for the first insert.
+# So concurrent insert won't happen on the table
+INSERT INTO t3_trans VALUES(100);
--echo #
--echo # Check that XA COMMIT / ROLLBACK for prepared transaction from a
--echo # disconnected session is blocked by active FTWRL in another connection.
diff --git a/mysql-test/main/frm_bad_row_type-7333.result b/mysql-test/main/frm_bad_row_type-7333.result
index bed606b8c39..91974bfa863 100644
--- a/mysql-test/main/frm_bad_row_type-7333.result
+++ b/mysql-test/main/frm_bad_row_type-7333.result
@@ -7,8 +7,8 @@ bad_row_type CREATE TABLE `bad_row_type` (
`category_id` int(11) NOT NULL AUTO_INCREMENT,
`category_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`category_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci /* `compression`='tokudb_zlib' */
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci /* `compression`='tokudb_zlib' */
show table status like 'bad_row_type';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
-bad_row_type MyISAM 10 Dynamic 0 0 0 281474976710655 1024 0 1 x x NULL utf8_general_ci NULL `compression`='tokudb_zlib' x N
+bad_row_type MyISAM 10 Dynamic 0 0 0 281474976710655 1024 0 1 x x NULL utf8mb3_general_ci NULL `compression`='tokudb_zlib' x N
drop table bad_row_type;
diff --git a/mysql-test/main/fulltext.result b/mysql-test/main/fulltext.result
index dba1789dd4d..3acde6121ec 100644
--- a/mysql-test/main/fulltext.result
+++ b/mysql-test/main/fulltext.result
@@ -6,9 +6,9 @@ INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
('Function MATCH ... AGAINST()','is used to do a search'),
('Full-text search in MySQL', 'implements vector space model');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
-t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT NO
+t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT NO
select * from t1 where MATCH(a,b) AGAINST ("collections");
a b
Only MyISAM tables support collections
@@ -242,9 +242,9 @@ match(ttxt.inhalt) against ('foobar');
id
3
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 1 tig 1 ticket A NULL NULL NULL YES BTREE
-t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 1 tig 1 ticket A NULL NULL NULL YES BTREE NO
+t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT NO
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
@@ -362,10 +362,10 @@ INSERT t1 VALUES ("üÔÏ ÍÙ - ÏÐÉÌËÉ"),("ïÔÌÅÚØ, ÇÎÉÄÁ!"),
("îÅ ×ÌÅÚÁÊ, ÕÂØÅÔ!"),("É ÂÕÄÅÔ ÐÒÁ×!");
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('ïðéìëé');
t collation(t)
-üÔÏ ÍÙ - ÏÐÉÌËÉ utf8_general_ci
+üÔÏ ÍÙ - ÏÐÉÌËÉ utf8mb3_general_ci
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('ðÒá*' IN BOOLEAN MODE);
t collation(t)
-É ÂÕÄÅÔ ÐÒÁ×! utf8_general_ci
+É ÂÕÄÅÔ ÐÒÁ×! utf8mb3_general_ci
SELECT * FROM t1 WHERE MATCH t AGAINST ('ÜÔÏ' IN BOOLEAN MODE);
t
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
@@ -373,12 +373,12 @@ t collation(t)
SET NAMES latin1;
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück');
t collation(t)
-aus Osnabrück utf8_general_ci
+aus Osnabrück utf8mb3_general_ci
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck');
t collation(t)
SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
t collation(t) FORMAT(MATCH t AGAINST ('Osnabruck'),6)
-aus Osnabrück utf8_general_ci 1.591140
+aus Osnabrück utf8mb3_general_ci 1.591140
SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR
alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
Warnings:
diff --git a/mysql-test/main/fulltext.test b/mysql-test/main/fulltext.test
index 7f27a883004..8b90c9cd81d 100644
--- a/mysql-test/main/fulltext.test
+++ b/mysql-test/main/fulltext.test
@@ -2,7 +2,7 @@
# Test of fulltext index
#
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
--disable_warnings
@@ -347,7 +347,9 @@ drop table t1, t2;
CREATE TABLE t1 (t VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, FULLTEXT (t));
SET NAMES latin1;
INSERT INTO t1 VALUES('Mit freundlichem Grüß aus Osnabrück');
+--disable_service_connection
SELECT COUNT(*) FROM t1 WHERE MATCH(t) AGAINST ('"osnabrück"' IN BOOLEAN MODE);
+--enable_service_connection
DROP TABLE t1;
#
diff --git a/mysql-test/main/fulltext2.test b/mysql-test/main/fulltext2.test
index 5f73505f9b3..e8b613bcb03 100644
--- a/mysql-test/main/fulltext2.test
+++ b/mysql-test/main/fulltext2.test
@@ -2,7 +2,7 @@
# test of new fulltext search features
#
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
#
diff --git a/mysql-test/main/func_crypt.result b/mysql-test/main/func_crypt.result
index f991f208618..4d2bddb7e5f 100644
--- a/mysql-test/main/func_crypt.result
+++ b/mysql-test/main/func_crypt.result
@@ -230,3 +230,13 @@ a b
hello 12NKz5XM5JeKI
DROP TABLE t1;
# End of 10.2 tests
+#
+# MDEV-25778 Overrun buffer in to_string_native()
+#
+CREATE TABLE t1 (a DECIMAL(15,11) ZEROFILL);
+INSERT INTO t1 (a) VALUES (0.1),(0.2);
+SELECT length(ENCRYPT(a)) AS f, COUNT(*) FROM t1 GROUP BY f;
+f COUNT(*)
+13 2
+DROP TABLE t1;
+# End of 10.6 tests
diff --git a/mysql-test/main/func_crypt.test b/mysql-test/main/func_crypt.test
index 907376049d8..cf6a6371e50 100644
--- a/mysql-test/main/func_crypt.test
+++ b/mysql-test/main/func_crypt.test
@@ -149,3 +149,14 @@ SELECT * FROM t1;
DROP TABLE t1;
--echo # End of 10.2 tests
+
+--echo #
+--echo # MDEV-25778 Overrun buffer in to_string_native()
+--echo #
+
+CREATE TABLE t1 (a DECIMAL(15,11) ZEROFILL);
+INSERT INTO t1 (a) VALUES (0.1),(0.2);
+SELECT length(ENCRYPT(a)) AS f, COUNT(*) FROM t1 GROUP BY f;
+DROP TABLE t1;
+
+--echo # End of 10.6 tests
diff --git a/mysql-test/main/func_group.test b/mysql-test/main/func_group.test
index e5ae33f7208..e17ed45180b 100644
--- a/mysql-test/main/func_group.test
+++ b/mysql-test/main/func_group.test
@@ -1,6 +1,10 @@
#
# simple test of all group functions
#
+if (`SELECT $PS_PROTOCOL != 0`)
+{
+ --skip Test temporarily disabled for ps-protocol
+}
set @sav_dpi= @@div_precision_increment;
set div_precision_increment= 5;
@@ -1074,7 +1078,9 @@ DROP TABLE t1;
--echo #
--echo # Bug#43668: Wrong comparison and MIN/MAX for YEAR(2)
--echo #
+--enable_prepare_warnings
create table t1 (f1 year(2), f2 year(4), f3 date, f4 datetime);
+--disable_prepare_warnings
insert into t1 values
(98,1998,19980101,"1998-01-01 00:00:00"),
(00,2000,20000101,"2000-01-01 00:00:01"),
diff --git a/mysql-test/main/func_hybrid_type.result b/mysql-test/main/func_hybrid_type.result
index 9800299020f..54273452965 100644
--- a/mysql-test/main/func_hybrid_type.result
+++ b/mysql-test/main/func_hybrid_type.result
@@ -3145,8 +3145,8 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
MAX(COALESCE(c1)) AS c1,
@@ -3196,9 +3196,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
MAX(COALESCE(c1)) AS c1,
@@ -3240,7 +3240,7 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
MAX(COALESCE(c1)) AS c1
@@ -3315,8 +3315,8 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
@c1:=c1 AS c1,
@@ -3364,9 +3364,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
@c:=c1 AS c1,
@@ -3406,7 +3406,7 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT
@c:=c1 AS c1
@@ -3492,8 +3492,8 @@ COALESCE(_latin1'aaa',_utf8 0xC39F) AS c2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- `c2` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c1` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
+ `c2` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT * FROM t1;
c1 c2
diff --git a/mysql-test/main/func_in.result b/mysql-test/main/func_in.result
index dd7125c393a..b18aa26777e 100644
--- a/mysql-test/main/func_in.result
+++ b/mysql-test/main/func_in.result
@@ -1,4 +1,3 @@
-drop table if exists t1, t2;
select 1 in (1,2,3);
1 in (1,2,3)
1
@@ -553,7 +552,7 @@ Warning 1292 Truncated incorrect DECIMAL value: 'a'
Warning 1292 Truncated incorrect DECIMAL value: 'b'
explain select f2 from t2 where f2 in ('a','b');
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 range t2f2 t2f2 5 NULL 1 Using where; Using index
+1 SIMPLE t2 ref t2f2 t2f2 5 const 1 Using index
Warnings:
Warning 1292 Truncated incorrect DECIMAL value: 'a'
Warning 1292 Truncated incorrect DECIMAL value: 'b'
@@ -944,3 +943,228 @@ Warning 1292 Truncated incorrect DECIMAL value: '0x'
#
# End of 10.4 tests
#
+#
+# MDEV-29662 same values in `IN` set vs equal comparison produces
+# the different performance
+#
+CREATE TABLE t1 (a INT, PRIMARY KEY(a));
+INSERT INTO t1 VALUES (1),(2),(3);
+SELECT * FROM t1 WHERE a IN (1,1);
+a
+1
+# 'const' access since 'a IN (1,1)' is converted to equality 'a=1'
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+EXPLAIN SELECT * FROM t1 WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+SELECT * FROM t1 WHERE a IN (1,1,2);
+a
+1
+2
+# Conversion to equality is impossible due to different values
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,1,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
+SELECT * FROM t1 WHERE a IN (1,NULL,1);
+a
+1
+# Conversion to equality is impossible due to NULL in the IN list
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,NULL,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using index
+SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
+a
+1
+3
+EXPLAIN SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
+EXPLAIN SELECT * FROM t1 WHERE a != 3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
+SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
+a
+2
+EXPLAIN SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
+SELECT * FROM t1 WHERE a NOT IN (1,2,NULL,NULL);
+a
+# No conversion is possible since elements are not constant
+SELECT * FROM t1 WHERE a IN ((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
+a
+3
+EXPLAIN SELECT * FROM t1 WHERE a IN
+((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using index
+3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
+# There must be no conversion here:
+SELECT * FROM t1 WHERE a IN (3,2,3,3,1,2,3);
+a
+1
+2
+3
+# Prepared statement
+PREPARE stmt FROM "SELECT * FROM t1 WHERE a IN (3,3,3)";
+EXECUTE stmt;
+a
+3
+EXECUTE stmt;
+a
+3
+DEALLOCATE PREPARE stmt;
+# Conversion to equality since SELECT 2 is evaluated as const
+SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
+a
+2
+EXPLAIN SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
+CREATE TABLE t2 (a INT, b VARCHAR(10), PRIMARY KEY(a,b));
+INSERT INTO t2 VALUES (1,'abc'),(2,'def'),(3,'ghi');
+SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
+a b
+1 abc
+# 'const' access due to conversion to equality
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
+SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
+a b
+2 def
+# No conversion due to different values
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range PRIMARY PRIMARY 16 NULL 2 Using where; Using index
+SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
+a b
+2 def
+# No conversion due to NULL
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 range PRIMARY PRIMARY 16 NULL 1 Using where; Using index
+SELECT * FROM t2 WHERE (a,b) NOT IN ((2,'def'),(2,'def'),(2,NULL));
+a b
+1 abc
+3 ghi
+SELECT * FROM t2 WHERE a IN (1,1,1,1);
+a b
+1 abc
+EXPLAIN SELECT * FROM t2 WHERE a IN (1,1,1,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
+EXPLAIN SELECT * FROM t2 WHERE a = 1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
+SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
+a b
+2 def
+3 ghi
+EXPLAIN SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL PRIMARY 16 NULL 3 Using where; Using index
+EXPLAIN SELECT * FROM t2 WHERE b != 'abc';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL PRIMARY 16 NULL 3 Using where; Using index
+# Prepared statements
+PREPARE stmt FROM "EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'))";
+EXECUTE stmt;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
+EXECUTE stmt;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
+DEALLOCATE PREPARE stmt;
+CREATE TABLE t3(a INT, PRIMARY KEY(a));
+INSERT INTO t3 VALUES (1),(2),(3);
+PREPARE stmt FROM "EXPLAIN SELECT * FROM t3 WHERE a IN (?,?,?)";
+EXECUTE stmt USING 1,1,1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 const PRIMARY PRIMARY 4 const 1 Using index
+EXECUTE stmt USING 2,3,4;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 3 Using where; Using index
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2, t3;
+# Nested joins
+CREATE TABLE t1 (a INT, b VARCHAR(10), PRIMARY KEY(a));
+INSERT INTO t1 VALUES (1,'abc'),(2,'def'),(3,'ghi');
+CREATE TABLE t2 (a INT, b VARCHAR(20), PRIMARY KEY(a));
+INSERT INTO t2 (a) VALUES (2),(3);
+CREATE TABLE t3 (a INT, PRIMARY KEY(a));
+INSERT INTO t3 VALUES (1),(2),(3),(4);
+CREATE TABLE t4 (a INT);
+INSERT INTO t4 VALUES (2),(3);
+# Conversion to equalities
+EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,2,2)
+AND t3.a IN (1,1,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
+1 SIMPLE t3 const PRIMARY PRIMARY 4 const 1 Using where; Using index
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2
+# No conversion to equalities due to different values in IN()
+EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,3)
+AND t3.a IN (1,2);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
+1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index; Using join buffer (incremental, BNL join)
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
+# Conversion to equalities
+EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
+ON t1.a = t2.a WHERE t1.a IN (2,2,2);
+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 const PRIMARY PRIMARY 4 const 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t3 index NULL PRIMARY 4 NULL 4 Using index
+# No conversion to equalities due to different values in IN()
+EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
+ON t1.a = t2.a WHERE t1.a IN (1,3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t3 index NULL PRIMARY 4 NULL 4 Using index
+# View
+CREATE VIEW v1 AS SELECT t1.*, t2.b AS t2_b FROM t1 LEFT JOIN t2
+ON t1.a = t2.a;
+EXPLAIN SELECT * FROM v1 WHERE a IN (2,2,2);
+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 const PRIMARY PRIMARY 4 const 1
+EXPLAIN SELECT * FROM v1 WHERE a IN (1,2,3);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using index condition
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
+# Stored procedures
+CREATE PROCEDURE p1(pa INT, pb INT)
+EXPLAIN SELECT * FROM t1 WHERE a IN (pa, pb);
+CALL p1(1,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
+CALL p1(2,1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition
+DROP TABLE t1, t2, t3, t4;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+#
+# MDEV-29895 prepared view crash server (unit.conc_view)
+#
+create table t1 (username varchar(12) not null, id int(11) not null);
+create view v1 as select username from t1 where id = 0;
+prepare stmt from "select username from v1 where username in (?, ?)";
+execute stmt using "1", "1";
+username
+deallocate prepare stmt;
+drop view v1;
+drop table t1;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/func_in.test b/mysql-test/main/func_in.test
index 2581a07ac09..02483c482ac 100644
--- a/mysql-test/main/func_in.test
+++ b/mysql-test/main/func_in.test
@@ -1,7 +1,3 @@
-# Initialise
---disable_warnings
-drop table if exists t1, t2;
---enable_warnings
#
# test of IN (NULL)
#
@@ -721,8 +717,141 @@ SELECT '0x' IN (0,1);
SELECT ('0x',1) IN ((0,1));
SELECT ('0x',1) IN ((0,1),(1,1));
-
--echo #
--echo # End of 10.4 tests
--echo #
+--echo #
+--echo # MDEV-29662 same values in `IN` set vs equal comparison produces
+--echo # the different performance
+--echo #
+CREATE TABLE t1 (a INT, PRIMARY KEY(a));
+INSERT INTO t1 VALUES (1),(2),(3);
+SELECT * FROM t1 WHERE a IN (1,1);
+--echo # 'const' access since 'a IN (1,1)' is converted to equality 'a=1'
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,1);
+EXPLAIN SELECT * FROM t1 WHERE a = 1;
+SELECT * FROM t1 WHERE a IN (1,1,2);
+--echo # Conversion to equality is impossible due to different values
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,1,2);
+SELECT * FROM t1 WHERE a IN (1,NULL,1);
+--echo # Conversion to equality is impossible due to NULL in the IN list
+EXPLAIN SELECT * FROM t1 WHERE a IN (1,NULL,1);
+
+SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
+EXPLAIN SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
+EXPLAIN SELECT * FROM t1 WHERE a != 3;
+SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
+EXPLAIN SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
+SELECT * FROM t1 WHERE a NOT IN (1,2,NULL,NULL);
+
+--echo # No conversion is possible since elements are not constant
+SELECT * FROM t1 WHERE a IN ((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
+EXPLAIN SELECT * FROM t1 WHERE a IN
+ ((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
+
+--echo # There must be no conversion here:
+SELECT * FROM t1 WHERE a IN (3,2,3,3,1,2,3);
+
+--echo # Prepared statement
+PREPARE stmt FROM "SELECT * FROM t1 WHERE a IN (3,3,3)";
+EXECUTE stmt;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+--echo # Conversion to equality since SELECT 2 is evaluated as const
+--disable_warnings
+SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
+EXPLAIN SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
+--enable_warnings
+
+CREATE TABLE t2 (a INT, b VARCHAR(10), PRIMARY KEY(a,b));
+INSERT INTO t2 VALUES (1,'abc'),(2,'def'),(3,'ghi');
+SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
+--echo # 'const' access due to conversion to equality
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
+SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
+--echo # No conversion due to different values
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
+SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
+--echo # No conversion due to NULL
+EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
+
+SELECT * FROM t2 WHERE (a,b) NOT IN ((2,'def'),(2,'def'),(2,NULL));
+
+SELECT * FROM t2 WHERE a IN (1,1,1,1);
+EXPLAIN SELECT * FROM t2 WHERE a IN (1,1,1,1);
+EXPLAIN SELECT * FROM t2 WHERE a = 1;
+
+SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
+EXPLAIN SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
+EXPLAIN SELECT * FROM t2 WHERE b != 'abc';
+
+--echo # Prepared statements
+PREPARE stmt FROM "EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'))";
+EXECUTE stmt;
+EXECUTE stmt;
+DEALLOCATE PREPARE stmt;
+
+CREATE TABLE t3(a INT, PRIMARY KEY(a));
+INSERT INTO t3 VALUES (1),(2),(3);
+PREPARE stmt FROM "EXPLAIN SELECT * FROM t3 WHERE a IN (?,?,?)";
+EXECUTE stmt USING 1,1,1;
+EXECUTE stmt USING 2,3,4;
+DEALLOCATE PREPARE stmt;
+DROP TABLE t1, t2, t3;
+
+--echo # Nested joins
+CREATE TABLE t1 (a INT, b VARCHAR(10), PRIMARY KEY(a));
+INSERT INTO t1 VALUES (1,'abc'),(2,'def'),(3,'ghi');
+CREATE TABLE t2 (a INT, b VARCHAR(20), PRIMARY KEY(a));
+INSERT INTO t2 (a) VALUES (2),(3);
+CREATE TABLE t3 (a INT, PRIMARY KEY(a));
+INSERT INTO t3 VALUES (1),(2),(3),(4);
+CREATE TABLE t4 (a INT);
+INSERT INTO t4 VALUES (2),(3);
+--echo # Conversion to equalities
+EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,2,2)
+ AND t3.a IN (1,1,1);
+--echo # No conversion to equalities due to different values in IN()
+EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,3)
+ AND t3.a IN (1,2);
+--echo # Conversion to equalities
+EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
+ ON t1.a = t2.a WHERE t1.a IN (2,2,2);
+--echo # No conversion to equalities due to different values in IN()
+EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
+ ON t1.a = t2.a WHERE t1.a IN (1,3);
+
+--echo # View
+CREATE VIEW v1 AS SELECT t1.*, t2.b AS t2_b FROM t1 LEFT JOIN t2
+ ON t1.a = t2.a;
+EXPLAIN SELECT * FROM v1 WHERE a IN (2,2,2);
+EXPLAIN SELECT * FROM v1 WHERE a IN (1,2,3);
+
+--echo # Stored procedures
+CREATE PROCEDURE p1(pa INT, pb INT)
+ EXPLAIN SELECT * FROM t1 WHERE a IN (pa, pb);
+CALL p1(1,1);
+CALL p1(2,1);
+
+DROP TABLE t1, t2, t3, t4;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+
+--echo #
+--echo # MDEV-29895 prepared view crash server (unit.conc_view)
+--echo #
+
+create table t1 (username varchar(12) not null, id int(11) not null);
+create view v1 as select username from t1 where id = 0;
+prepare stmt from "select username from v1 where username in (?, ?)";
+execute stmt using "1", "1";
+deallocate prepare stmt;
+drop view v1;
+drop table t1;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
+
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result
index b9df193d3bd..c963fdc966d 100644
--- a/mysql-test/main/func_json.result
+++ b/mysql-test/main/func_json.result
@@ -822,7 +822,7 @@ CREATE TABLE t2 SELECT JSON_ARRAY_INSERT(fld, '$.[0]', '0') FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `JSON_ARRAY_INSERT(fld, '$.[0]', '0')` varchar(25) DEFAULT NULL
+ `JSON_ARRAY_INSERT(fld, '$.[0]', '0')` varchar(21) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
SET sql_mode=default;
@@ -1596,9 +1596,9 @@ SELECT t1.id, JSON_ARRAYAGG(JSON_OBJECT('id',t2.id) ORDER BY t2.id) as materials
from t1 LEFT JOIN t2 on t1.id = t2.owner_id
GROUP BY t1.id ORDER BY id;
id materials
-1 ["{\"id\": 1}","{\"id\": 2}"]
-2 ["{\"id\": 3}"]
-3 ["{\"id\": 4}"]
+1 [{"id": 1},{"id": 2}]
+2 [{"id": 3}]
+3 [{"id": 4}]
DROP TABLE t1;
DROP TABLE t2;
#
@@ -1637,3 +1637,32 @@ JSON_OBJECTAGG('\\', 1)
#
# End of 10.5 tests
#
+#
+# MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
+#
+CREATE TABLE t (a VARCHAR(8));
+CREATE VIEW v AS SELECT * FROM t;
+INSERT INTO t VALUES ('foo'),('bar');
+SELECT JSON_ARRAYAGG(a) AS f FROM v;
+f
+["foo","bar"]
+DROP VIEW v;
+DROP TABLE t;
+#
+# MDEV-29264 JSON functions overflow error based ON LONGTEXT field
+#
+CREATE TABLE t(l1 LONGTEXT, l2 LONGTEXT, l3 LONGTEXT, l4 LONGTEXT);
+INSERT INTO t VALUES('k1', 'v1', 'k2', 'v2');
+SELECT JSON_ARRAY(l1, l2, l3, l4), JSON_OBJECT(l1, l2, l3, l4) from t;
+JSON_ARRAY(l1, l2, l3, l4) JSON_OBJECT(l1, l2, l3, l4)
+["k1", "v1", "k2", "v2"] {"k1": "v1", "k2": "v2"}
+SELECT JSON_ARRAY_APPEND(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3'), JSON_ARRAY_INSERT(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3') from t;
+JSON_ARRAY_APPEND(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3') JSON_ARRAY_INSERT(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3')
+[["k1", "k3"], "v1", "k2", "v2"] ["k3", "k1", "v1", "k2", "v2"]
+SELECT JSON_INSERT(JSON_OBJECT(l1, l2, l3, l4), '$.k3', 'v3'),JSON_SET(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2'),JSON_REPLACE(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2') from t;
+JSON_INSERT(JSON_OBJECT(l1, l2, l3, l4), '$.k3', 'v3') JSON_SET(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2') JSON_REPLACE(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2')
+{"k1": "v1", "k2": "v2", "k3": "v3"} {"k1": "v1", "k2": "new v2"} {"k1": "v1", "k2": "new v2"}
+DROP TABLE t;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test
index 0a5d1638717..464e7d762d8 100644
--- a/mysql-test/main/func_json.test
+++ b/mysql-test/main/func_json.test
@@ -1079,3 +1079,27 @@ SELECT JSON_OBJECTAGG('\\', 1);
--echo # End of 10.5 tests
--echo #
+--echo #
+--echo # MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
+--echo #
+
+CREATE TABLE t (a VARCHAR(8));
+CREATE VIEW v AS SELECT * FROM t;
+INSERT INTO t VALUES ('foo'),('bar');
+SELECT JSON_ARRAYAGG(a) AS f FROM v;
+DROP VIEW v;
+DROP TABLE t;
+
+--echo #
+--echo # MDEV-29264 JSON functions overflow error based ON LONGTEXT field
+--echo #
+CREATE TABLE t(l1 LONGTEXT, l2 LONGTEXT, l3 LONGTEXT, l4 LONGTEXT);
+INSERT INTO t VALUES('k1', 'v1', 'k2', 'v2');
+SELECT JSON_ARRAY(l1, l2, l3, l4), JSON_OBJECT(l1, l2, l3, l4) from t;
+SELECT JSON_ARRAY_APPEND(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3'), JSON_ARRAY_INSERT(JSON_ARRAY(l1, l2, l3, l4), '$[0]', 'k3') from t;
+SELECT JSON_INSERT(JSON_OBJECT(l1, l2, l3, l4), '$.k3', 'v3'),JSON_SET(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2'),JSON_REPLACE(JSON_OBJECT(l1, l2, l3, l4), '$.k2', 'new v2') from t;
+DROP TABLE t;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/func_json_notembedded.result b/mysql-test/main/func_json_notembedded.result
new file mode 100644
index 00000000000..756d2e85f7c
--- /dev/null
+++ b/mysql-test/main/func_json_notembedded.result
@@ -0,0 +1,42 @@
+set global max_allowed_packet=1073741824;
+connect u,localhost,root;
+#
+# MDEV-24909 JSON functions don't respect KILL QUERY / max_statement_time limit
+#
+set group_concat_max_len= 4294967295;
+set @obj=concat_ws('','{', repeat('"a":"b",', 1250000/2), '"c":"d"}');
+set @arr=concat_ws('','[', repeat('1234567,', 1250000/2), '2345678]');
+select length(@obj), length(@arr);
+length(@obj) length(@arr)
+5000009 5000009
+set max_statement_time=0.0001;
+select json_array_append(@arr, '$[0]', 1);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_array_insert(@arr, '$[0]', 1);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_insert(@obj, '$.meta', 1);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_compact(@arr);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_detailed(@arr);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_loose(@arr);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_merge(@obj, @arr);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_merge_patch(@obj, @obj);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_merge_preserve(@obj, @arr);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_remove(@obj,'$.foo');
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_replace(@obj,'$.foo',1);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+select json_set(@arr,'$[1000]',1);
+ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
+disconnect u;
+connection default;
+set global max_allowed_packet=default;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/func_json_notembedded.test b/mysql-test/main/func_json_notembedded.test
new file mode 100644
index 00000000000..893b248301c
--- /dev/null
+++ b/mysql-test/main/func_json_notembedded.test
@@ -0,0 +1,38 @@
+source include/have_profiling.inc;
+source include/not_embedded.inc;
+source include/no_valgrind_without_big.inc;
+
+set global max_allowed_packet=1073741824;
+connect u,localhost,root;
+
+--echo #
+--echo # MDEV-24909 JSON functions don't respect KILL QUERY / max_statement_time limit
+--echo #
+set group_concat_max_len= 4294967295;
+
+set @obj=concat_ws('','{', repeat('"a":"b",', 1250000/2), '"c":"d"}');
+set @arr=concat_ws('','[', repeat('1234567,', 1250000/2), '2345678]');
+select length(@obj), length(@arr);
+
+set max_statement_time=0.0001;
+disable_abort_on_error;
+select json_array_append(@arr, '$[0]', 1);
+select json_array_insert(@arr, '$[0]', 1);
+select json_insert(@obj, '$.meta', 1);
+select json_compact(@arr);
+select json_detailed(@arr);
+select json_loose(@arr);
+select json_merge(@obj, @arr);
+select json_merge_patch(@obj, @obj);
+select json_merge_preserve(@obj, @arr);
+select json_remove(@obj,'$.foo');
+select json_replace(@obj,'$.foo',1);
+select json_set(@arr,'$[1000]',1);
+enable_abort_on_error;
+disconnect u;
+connection default;
+set global max_allowed_packet=default;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/func_misc.result b/mysql-test/main/func_misc.result
index d20dce8b19f..7d91f4b0777 100644
--- a/mysql-test/main/func_misc.result
+++ b/mysql-test/main/func_misc.result
@@ -23,6 +23,17 @@ hex(inet_aton('127.1.1'))
select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8'')))
36 latin1 16
+select length(sys_guid()) = length(uuid()) -2;
+length(sys_guid()) = length(uuid()) -2
+0
+select sys_guid() != sys_guid();
+sys_guid() != sys_guid()
+1
+explain extended select uuid() = "", sys_guid() = "";
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
+Warnings:
+Note 1003 select uuid() = '' AS `uuid() = ""`,sys_guid() = '' AS `sys_guid() = ""`
set @a= uuid_short();
set @b= uuid_short();
select @b - @a;
diff --git a/mysql-test/main/func_misc.test b/mysql-test/main/func_misc.test
index 346e7383173..c69832375e7 100644
--- a/mysql-test/main/func_misc.test
+++ b/mysql-test/main/func_misc.test
@@ -19,6 +19,11 @@ select hex(inet_aton('127.1.1'));
select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
+select length(sys_guid()) = length(uuid()) -2;
+select sys_guid() != sys_guid();
+explain extended select uuid() = "", sys_guid() = "";
+
+
# As we can assume we are the only user for the mysqld server, the difference
# between two calls should be -1
set @a= uuid_short();
diff --git a/mysql-test/main/func_regexp_pcre.result b/mysql-test/main/func_regexp_pcre.result
index c0d91dd9398..9e51ced961c 100644
--- a/mysql-test/main/func_regexp_pcre.result
+++ b/mysql-test/main/func_regexp_pcre.result
@@ -436,7 +436,7 @@ CREATE TABLE t1 AS SELECT REGEXP_REPLACE('abc','b','x');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `REGEXP_REPLACE('abc','b','x')` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `REGEXP_REPLACE('abc','b','x')` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
EXPLAIN EXTENDED SELECT REGEXP_REPLACE('abc','b','x');
@@ -739,7 +739,7 @@ CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b');
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `REGEXP_SUBSTR('abc','b')` varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `REGEXP_SUBSTR('abc','b')` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
EXPLAIN EXTENDED SELECT REGEXP_SUBSTR('abc','b');
diff --git a/mysql-test/main/func_str.result b/mysql-test/main/func_str.result
index e0b2aeacb5d..8de7cbf679f 100644
--- a/mysql-test/main/func_str.result
+++ b/mysql-test/main/func_str.result
@@ -2461,12 +2461,12 @@ SELECT CHAR(0xff,0x8f USING utf8);
CHAR(0xff,0x8f USING utf8)
NULL
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF8F'
+Warning 1300 Invalid utf8mb3 character string: 'FF8F'
SELECT CHAR(0xff,0x8f USING utf8) IS NULL;
CHAR(0xff,0x8f USING utf8) IS NULL
1
Warnings:
-Warning 1300 Invalid utf8 character string: 'FF8F'
+Warning 1300 Invalid utf8mb3 character string: 'FF8F'
SET SQL_MODE=@orig_sql_mode;
select substring('abc', cast(2 as unsigned int));
substring('abc', cast(2 as unsigned int))
@@ -5096,10 +5096,10 @@ create database mysqltest1 CHARACTER SET = 'utf8' COLLATE = 'utf8_bin';
use mysqltest1;
select charset(chr(65)), length(chr(65)),char_length(chr(65));
charset(chr(65)) length(chr(65)) char_length(chr(65))
-utf8 1 1
+utf8mb3 1 1
select charset(chr(14844588)), length(chr(14844588)),char_length(chr(14844588));
charset(chr(14844588)) length(chr(14844588)) char_length(chr(14844588))
-utf8 3 1
+utf8mb3 3 1
drop database mysqltest1;
use test;
#
@@ -5151,9 +5151,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `cn` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c0` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c1` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `cn` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c0` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c1` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
#
@@ -5169,9 +5169,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `cn` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c0` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c1` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `cn` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c0` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c1` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
CREATE TABLE t1 (i BIGINT);
@@ -5184,9 +5184,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `cn` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c0` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c1` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `cn` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c0` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c1` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
CREATE TABLE t1 (i BIGINT);
@@ -5199,9 +5199,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `cn` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c0` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c1` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `cn` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c0` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c1` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1, t2;
CREATE TABLE t1 (i BIGINT);
@@ -5214,9 +5214,9 @@ FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `cn` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c0` char(0) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `cn` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c0` char(0) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c1` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT c1 FROM t2;
c1
@@ -5253,7 +5253,7 @@ conv(i,16,2)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `conv(i,16,2)` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `conv(i,16,2)` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1,t2;
#
diff --git a/mysql-test/main/func_str.test b/mysql-test/main/func_str.test
index b8bb8a54090..390b5199cec 100644
--- a/mysql-test/main/func_str.test
+++ b/mysql-test/main/func_str.test
@@ -53,11 +53,14 @@ select substring_index('aaaaaaaaa1','aaaa',1);
select substring_index('aaaaaaaaa1','aaaa',2);
select substring_index('aaaaaaaaa1','1',1);
select substring_index('aaaaaaaaa1','a',-1);
+#enable after fix MDEV-29601
+--disable_service_connection
select substring_index('aaaaaaaaa1','aa',-1);
select substring_index('aaaaaaaaa1','aa',-2);
select substring_index('aaaaaaaaa1','aa',-3);
select substring_index('aaaaaaaaa1','aa',-4);
select substring_index('aaaaaaaaa1','aa',-5);
+--enable_service_connection
select substring_index('aaaaaaaaa1','aaa',-1);
select substring_index('aaaaaaaaa1','aaa',-2);
select substring_index('aaaaaaaaa1','aaa',-3);
@@ -321,10 +324,13 @@ select FIELD('b','A','B');
select FIELD('B','A','B');
select FIELD('b' COLLATE latin1_bin,'A','B');
select FIELD('b','A' COLLATE latin1_bin,'B');
+#enable after fix MDEV-29601
+--disable_service_connection
--error 1270
select FIELD(_latin2'b','A','B');
--error 1270
select FIELD('b',_latin2'A','B');
+--enable_service_connection
select FIELD('1',_latin2'3','2',1);
select POSITION(_latin1'B' IN _latin1'abcd');
diff --git a/mysql-test/main/func_system.result b/mysql-test/main/func_system.result
index af6399ea08e..fd99c81aaf2 100644
--- a/mysql-test/main/func_system.result
+++ b/mysql-test/main/func_system.result
@@ -3,7 +3,7 @@ database()
test
select charset(database());
charset(database())
-utf8
+utf8mb3
select database() = "test";
database() = "test"
1
@@ -24,7 +24,7 @@ user() like _latin1"%@%"
1
select charset(user());
charset(user())
-utf8
+utf8mb3
select version()>="03.23.29";
version()>="03.23.29"
1
@@ -36,7 +36,7 @@ version()>=_latin1"03.23.29"
1
select charset(version());
charset(version())
-utf8
+utf8mb3
explain extended select database(), user();
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
@@ -46,23 +46,23 @@ create table t1 (version char(60)) select database(), user(), version() as 'vers
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `database()` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `user()` varchar(141) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `database()` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `user()` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`version` char(60) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select charset(charset(_utf8'a')), charset(collation(_utf8'a'));
charset(charset(_utf8'a')) charset(collation(_utf8'a'))
-utf8 utf8
+utf8mb3 utf8mb3
select collation(charset(_utf8'a')), collation(collation(_utf8'a'));
collation(charset(_utf8'a')) collation(collation(_utf8'a'))
-utf8_general_ci utf8_general_ci
+utf8mb3_general_ci utf8mb3_general_ci
create table t1 select charset(_utf8'a'), collation(_utf8'a');
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `charset(_utf8'a')` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `collation(_utf8'a')` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `charset(_utf8'a')` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `collation(_utf8'a')` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
select TRUE,FALSE,NULL;
diff --git a/mysql-test/main/func_test.test b/mysql-test/main/func_test.test
index 02b08d13dbe..c8206d34a12 100644
--- a/mysql-test/main/func_test.test
+++ b/mysql-test/main/func_test.test
@@ -14,7 +14,10 @@ select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%"
select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d";
select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%';
select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" like "ab";
+#enable after fix MDEV-29601
+--disable_service_connection
select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
+--enable_service_connection
select "aba" regexp concat("^","a");
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
diff --git a/mysql-test/main/func_time.test b/mysql-test/main/func_time.test
index a8542c7eaab..91b846e4c61 100644
--- a/mysql-test/main/func_time.test
+++ b/mysql-test/main/func_time.test
@@ -650,8 +650,10 @@ SET GLOBAL log_bin_trust_function_creators = 1;
create table t1 (a timestamp default '2005-05-05 01:01:01',
b timestamp default '2005-05-05 01:01:01');
-delimiter //;
+--disable_warnings
drop function if exists t_slow_sysdate;
+--enable_warnings
+delimiter //;
create function t_slow_sysdate() returns timestamp
begin
do sleep(2);
@@ -2286,6 +2288,7 @@ SET @sav_slow_query_log= @@session.slow_query_log;
SET @@session.slow_query_log= ON;
SELECT current_timestamp(6),fn_sleep_before_now() INTO @ts_cur, @ts_func;
+--enable_prepare_warnings
SELECT a FROM t_ts LIMIT 1 into @ts_func;
SELECT a FROM t_trig LIMIT 1 into @ts_trig;
if (!`SELECT @ts_cur = @ts_func and @ts_func = @ts_trig`)
@@ -2301,6 +2304,8 @@ SET @@session.slow_query_log= OFF;
SELECT current_timestamp(6),fn_sleep_before_now() INTO @ts_cur, @func_ts;
SELECT a FROM t_ts LIMIT 1 into @ts_func;
SELECT a FROM t_trig LIMIT 1 into @ts_trig;
+--disable_prepare_warnings
+
if (!`SELECT @ts_cur = @ts_func and @ts_func = @ts_trig`)
{
SELECT @ts_cur, @ts_func, @ts_trig;
diff --git a/mysql-test/main/func_weight_string.test b/mysql-test/main/func_weight_string.test
index 528aa5d4f0f..e2043e8657f 100644
--- a/mysql-test/main/func_weight_string.test
+++ b/mysql-test/main/func_weight_string.test
@@ -2,6 +2,9 @@
drop table if exists t1;
--enable_warnings
+#check after fix MDEV-29601
+--disable_service_connection
+
set @save_max_allowed_packet=@@max_allowed_packet;
set global max_allowed_packet=1048576;
connect (conn1,localhost,root,,);
@@ -120,6 +123,8 @@ disconnect conn1;
connection default;
set global max_allowed_packet=@save_max_allowed_packet;
+--enable_service_connection
+
--echo #
--echo # Start of 10.1 tests
--echo #
diff --git a/mysql-test/main/get_diagnostics.result b/mysql-test/main/get_diagnostics.result
index 8842df8cd58..b00378d4ee9 100644
--- a/mysql-test/main/get_diagnostics.result
+++ b/mysql-test/main/get_diagnostics.result
@@ -258,12 +258,10 @@ DROP PROCEDURE p1;
# Test GET DIAGNOSTICS runtime
#
-# GET DIAGNOSTICS cannot be the object of a PREPARE statement.
+# GET DIAGNOSTICS can be the object of a PREPARE statement.
PREPARE stmt FROM "GET DIAGNOSTICS CONDITION 1 @var = CLASS_ORIGIN";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
PREPARE stmt FROM "GET DIAGNOSTICS @var = NUMBER";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
# GET DIAGNOSTICS does not clear the diagnostics area.
@@ -776,10 +774,10 @@ Warning 1916 Got overflow when converting '-19999999999999999999' to INT. Value
GET DIAGNOSTICS CONDITION 1 @var1 = MESSAGE_TEXT, @var2 = CLASS_ORIGIN;
SELECT CHARSET(@var1), COLLATION(@var1), COERCIBILITY(@var1);
CHARSET(@var1) COLLATION(@var1) COERCIBILITY(@var1)
-utf8 utf8_general_ci 2
+utf8mb3 utf8mb3_general_ci 2
SELECT CHARSET(@var2), COLLATION(@var2), COERCIBILITY(@var2);
CHARSET(@var2) COLLATION(@var2) COERCIBILITY(@var2)
-utf8 utf8_general_ci 2
+utf8mb3 utf8mb3_general_ci 2
#
# Command statistics
#
diff --git a/mysql-test/main/get_diagnostics.test b/mysql-test/main/get_diagnostics.test
index 6b4227887b5..86643db3b5a 100644
--- a/mysql-test/main/get_diagnostics.test
+++ b/mysql-test/main/get_diagnostics.test
@@ -331,12 +331,10 @@ DROP PROCEDURE p1;
--echo #
--echo
---echo # GET DIAGNOSTICS cannot be the object of a PREPARE statement.
+--echo # GET DIAGNOSTICS can be the object of a PREPARE statement.
--echo
---error ER_UNSUPPORTED_PS
PREPARE stmt FROM "GET DIAGNOSTICS CONDITION 1 @var = CLASS_ORIGIN";
---error ER_UNSUPPORTED_PS
PREPARE stmt FROM "GET DIAGNOSTICS @var = NUMBER";
--echo
diff --git a/mysql-test/main/gis.result b/mysql-test/main/gis.result
index 14f56f7de01..61deb087424 100644
--- a/mysql-test/main/gis.result
+++ b/mysql-test/main/gis.result
@@ -1759,7 +1759,7 @@ GEOMETRY_COLUMNS CREATE TEMPORARY TABLE `GEOMETRY_COLUMNS` (
`COORD_DIMENSION` tinyint(2) NOT NULL,
`MAX_PPR` tinyint(2) NOT NULL,
`SRID` smallint(5) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SHOW CREATE TABLE information_schema.spatial_ref_sys;
Table Create Table
SPATIAL_REF_SYS CREATE TEMPORARY TABLE `SPATIAL_REF_SYS` (
@@ -1767,7 +1767,7 @@ SPATIAL_REF_SYS CREATE TEMPORARY TABLE `SPATIAL_REF_SYS` (
`AUTH_NAME` varchar(512) NOT NULL,
`AUTH_SRID` int(5) NOT NULL,
`SRTEXT` varchar(2048) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
create table t1(g GEOMETRY, pt POINT);
create table t2(g LINESTRING, pl POLYGON);
select * from information_schema.geometry_columns where f_table_schema='test';
diff --git a/mysql-test/main/grant.result b/mysql-test/main/grant.result
index 84bb26dc369..585e927a0d4 100644
--- a/mysql-test/main/grant.result
+++ b/mysql-test/main/grant.result
@@ -687,11 +687,11 @@ mysqltest dummytable ALTER, CREATE, CREATE VIEW, DELETE, DELETE HISTORY, DROP, I
mysqltest dummyview ALTER, CREATE, CREATE VIEW, DELETE, DELETE HISTORY, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, TRIGGER, UPDATE
SHOW FIELDS FROM mysql.tables_priv;
Field Type Null Key Default Extra
-Host char(60) NO PRI
+Host char(255) NO PRI
Db char(64) NO PRI
-User char(80) NO PRI
+User char(128) NO PRI
Table_name char(64) NO PRI
-Grantor char(141) NO MUL
+Grantor varchar(384) NO MUL
Timestamp timestamp NO current_timestamp() on update current_timestamp()
Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') NO
Column_priv set('Select','Insert','Update','References') NO
@@ -1132,7 +1132,7 @@ USE test;
connection default;
disconnect master;
create user longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
CREATE DATABASE mysqltest1;
CREATE TABLE mysqltest1.t1 (
int_field INTEGER UNSIGNED NOT NULL,
@@ -1218,29 +1218,29 @@ DROP USER mysqltest_1@localhost;
DROP DATABASE mysqltest1;
USE test;
GRANT CREATE ON mysqltest.* TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYa...' is too long for host name (should be no longer than 255)
REVOKE CREATE ON mysqltest.* FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYa...' is too long for host name (should be no longer than 255)
GRANT CREATE ON t1 TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1...' is too long for host name (should be no longer than 255)
REVOKE CREATE ON t1 FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1...' is too long for host name (should be no longer than 255)
GRANT EXECUTE ON PROCEDURE p1 TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1...' is too long for host name (should be no longer than 255)
REVOKE EXECUTE ON PROCEDURE p1 FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1...' is too long for host name (should be no longer than 255)
CREATE USER bug23556@localhost;
CREATE DATABASE bug23556;
GRANT SELECT ON bug23556.* TO bug23556@localhost;
@@ -1713,7 +1713,7 @@ drop database mysqltest1;
End of 5.0 tests
set names utf8;
grant select on test.* to очень_длинный_юзер890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@localhost;
-ERROR HY000: String 'очень_длинный_юзер890123456789012345678901234567890...' is too long for user name (should be no longer than 80)
+ERROR HY000: String 'очень_длинный_юзер890123456789012345678901234567890...' is too long for user name (should be no longer than 128)
set names default;
create database mysqltest;
use mysqltest;
diff --git a/mysql-test/main/grant.test b/mysql-test/main/grant.test
index b67c59cd559..a243967a9c7 100644
--- a/mysql-test/main/grant.test
+++ b/mysql-test/main/grant.test
@@ -899,13 +899,13 @@ USE test;
GRANT CREATE ON mysqltest.* TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+GRANT CREATE ON mysqltest.* TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
--error ER_WRONG_STRING_LENGTH
REVOKE CREATE ON mysqltest.* FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
# Working with table-level privileges.
@@ -913,13 +913,13 @@ REVOKE CREATE ON mysqltest.* FROM some_user_name@1234567890abcdefghij1234567890a
GRANT CREATE ON t1 TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+GRANT CREATE ON t1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
--error ER_WRONG_STRING_LENGTH
REVOKE CREATE ON t1 FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
# Working with routine-level privileges.
@@ -927,13 +927,13 @@ REVOKE CREATE ON t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij
GRANT EXECUTE ON PROCEDURE p1 TO longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+GRANT EXECUTE ON PROCEDURE p1 TO some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
--error ER_WRONG_STRING_LENGTH
REVOKE EXECUTE ON PROCEDURE p1 FROM longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost;
--error ER_WRONG_STRING_LENGTH
-REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
+REVOKE EXECUTE ON PROCEDURE t1 FROM some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY;
#
@@ -1233,12 +1233,14 @@ drop function if exists test_function;
drop view if exists v1;
create table test (col1 varchar(30));
delimiter |;
+--enable_prepare_warnings
create function test_function() returns varchar(30)
begin
declare tmp varchar(30);
select col1 from test limit 1 into tmp;
return '1';
end|
+--disable_prepare_warnings
delimiter ;|
create view v1 as select test.* from test where test.col1=test_function();
grant update (col1) on v1 to 'greg'@'localhost';
diff --git a/mysql-test/main/grant2.result b/mysql-test/main/grant2.result
index 828a45c4edf..b0ad2998198 100644
--- a/mysql-test/main/grant2.result
+++ b/mysql-test/main/grant2.result
@@ -709,8 +709,8 @@ SHOW COLUMNS FROM t1;
Field Type Null Key Default Extra
a int(11) YES NULL
SHOW KEYS FROM t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 0 PRIMARY 1 a A 0 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t3 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
#
# SHOW CREATE TABLE.
#
diff --git a/mysql-test/main/grant2.test b/mysql-test/main/grant2.test
index f98af8d8630..b8098488709 100644
--- a/mysql-test/main/grant2.test
+++ b/mysql-test/main/grant2.test
@@ -524,8 +524,10 @@ INSERT INTO t2 VALUES (1);
DROP FUNCTION IF EXISTS f2;
--enable_warnings
delimiter //;
+--enable_prepare_warnings
CREATE FUNCTION f2 () RETURNS INT
BEGIN DECLARE v INT; SELECT s1 FROM t2 INTO v; RETURN v; END//
+--disable_prepare_warnings
delimiter ;//
SELECT f2();
diff --git a/mysql-test/main/grant4.result b/mysql-test/main/grant4.result
index a5873a4f8ac..bc38f281e8e 100644
--- a/mysql-test/main/grant4.result
+++ b/mysql-test/main/grant4.result
@@ -94,14 +94,14 @@ use mysqltest_db1;
** SELECT FROM INFORMATION_SCHEMA.STATISTICS will succeed because any privileges will do (authentication is enough).
** but will return no rows
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
SHOW INDEX FROM t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6.
SHOW INDEX FROM t6;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t6 1 i 1 s1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t6 1 i 1 s1 A NULL NULL NULL YES BTREE NO
** CHECK TABLE requires any privilege on any column combination and should succeed for t6:
CHECK TABLE t6;
Table Op Msg_type Msg_text
@@ -166,7 +166,7 @@ End of 5.5 tests
# are insufficient are discovered.
#
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*mysqltest_u1 Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*mysqltest_u1 Checking table");
drop database if exists mysqltest_db1;
create database mysqltest_db1;
# Create tables which we are going to CHECK/REPAIR.
@@ -187,8 +187,8 @@ connection con1;
check table mysqltest_db1.t1;
Table Op Msg_type Msg_text
mysqltest_db1.t1 check warning 1 client is using or hasn't closed the table properly
-mysqltest_db1.t1 check error Size of indexfile is: 1024 Should be: 2048
-mysqltest_db1.t1 check warning Size of datafile is: 14 Should be: 7
+mysqltest_db1.t1 check error Size of indexfile is: 1024 Should be: 2048
+mysqltest_db1.t1 check warning Size of datafile is: 14 Should be: 7
mysqltest_db1.t1 check error Corrupt
# The below statement should fail before repairing t1.
# Otherwise info about such repair will be missing from its result-set.
@@ -201,8 +201,8 @@ check table mysqltest_db1.t1;
Table Op Msg_type Msg_text
mysqltest_db1.t1 check warning Table is marked as crashed
mysqltest_db1.t1 check warning 1 client is using or hasn't closed the table properly
-mysqltest_db1.t1 check error Size of indexfile is: 1024 Should be: 2048
-mysqltest_db1.t1 check warning Size of datafile is: 14 Should be: 7
+mysqltest_db1.t1 check error Size of indexfile is: 1024 Should be: 2048
+mysqltest_db1.t1 check warning Size of datafile is: 14 Should be: 7
mysqltest_db1.t1 check error Corrupt
repair table mysqltest_db1.t1;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/grant4.test b/mysql-test/main/grant4.test
index 96839d8d1f0..cda1c5fb281 100644
--- a/mysql-test/main/grant4.test
+++ b/mysql-test/main/grant4.test
@@ -193,7 +193,7 @@ source include/switch_to_mysql_global_priv.inc;
--echo # are insufficient are discovered.
--echo #
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*mysqltest_u1 Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*mysqltest_u1 Checking table");
--disable_warnings
drop database if exists mysqltest_db1;
--enable_warnings
diff --git a/mysql-test/main/grant5.result b/mysql-test/main/grant5.result
index 1038198bd02..6f50f530a3e 100644
--- a/mysql-test/main/grant5.result
+++ b/mysql-test/main/grant5.result
@@ -265,8 +265,8 @@ Tables_in_db Table_type
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
show index in tmp;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tmp 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+tmp 1 a 1 a A NULL NULL NULL YES BTREE NO
show columns in tmp;
Field Type Null Key Default Extra
a int(11) YES MUL NULL
diff --git a/mysql-test/main/grant_4332.result b/mysql-test/main/grant_4332.result
index 7fc29795b6f..6a8e3d3f279 100644
--- a/mysql-test/main/grant_4332.result
+++ b/mysql-test/main/grant_4332.result
@@ -11,7 +11,7 @@ alter table mysql.event modify definer char(77) collate utf8_bin not null defaul
flush privileges;
select user();
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def user() 253 77 14 N 1 39 8
+def user() 253 272 14 N 1 39 8
user()
root@localhost
create user a17aaaaaaaaaaaaa0@localhost;
@@ -20,17 +20,17 @@ grant usage on *.* to a17aaaaaaaaaaaaa0@lodalhost;
ERROR HY000: String 'a17aaaaaaaaaaaaa0' is too long for user name (should be no longer than 16)
drop user a17aaaaaaaaaaaaa0@lodalhost;
ERROR HY000: String 'a17aaaaaaaaaaaaa0' is too long for user name (should be no longer than 16)
-alter table mysql.user modify User char(80) binary not null default '';
-alter table mysql.db modify User char(80) binary not null default '';
-alter table mysql.tables_priv modify User char(80) binary not null default '';
-alter table mysql.columns_priv modify User char(80) binary not null default '';
-alter table mysql.procs_priv modify User char(80) binary not null default '';
-alter table mysql.proc modify definer char(141) collate utf8_bin not null default '';
-alter table mysql.event modify definer char(141) collate utf8_bin not null default '';
+alter table mysql.user modify User char(128) binary not null default '';
+alter table mysql.db modify User char(128) binary not null default '';
+alter table mysql.tables_priv modify User char(128) binary not null default '';
+alter table mysql.columns_priv modify User char(128) binary not null default '';
+alter table mysql.procs_priv modify User char(128) binary not null default '';
+alter table mysql.proc modify definer varchar(384) collate utf8_bin not null default '';
+alter table mysql.event modify definer varchar(384) collate utf8_bin not null default '';
flush privileges;
select user();
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def user() 253 141 14 N 1 39 8
+def user() 253 384 14 N 1 39 8
user()
root@localhost
set global sql_mode=default;
diff --git a/mysql-test/main/grant_4332.test b/mysql-test/main/grant_4332.test
index 4a228b5c1a1..8ee42e0f6e0 100644
--- a/mysql-test/main/grant_4332.test
+++ b/mysql-test/main/grant_4332.test
@@ -32,13 +32,13 @@ grant usage on *.* to a17aaaaaaaaaaaaa0@lodalhost;
--error ER_WRONG_STRING_LENGTH
drop user a17aaaaaaaaaaaaa0@lodalhost;
-alter table mysql.user modify User char(80) binary not null default '';
-alter table mysql.db modify User char(80) binary not null default '';
-alter table mysql.tables_priv modify User char(80) binary not null default '';
-alter table mysql.columns_priv modify User char(80) binary not null default '';
-alter table mysql.procs_priv modify User char(80) binary not null default '';
-alter table mysql.proc modify definer char(141) collate utf8_bin not null default '';
-alter table mysql.event modify definer char(141) collate utf8_bin not null default '';
+alter table mysql.user modify User char(128) binary not null default '';
+alter table mysql.db modify User char(128) binary not null default '';
+alter table mysql.tables_priv modify User char(128) binary not null default '';
+alter table mysql.columns_priv modify User char(128) binary not null default '';
+alter table mysql.procs_priv modify User char(128) binary not null default '';
+alter table mysql.proc modify definer varchar(384) collate utf8_bin not null default '';
+alter table mysql.event modify definer varchar(384) collate utf8_bin not null default '';
flush privileges;
--enable_metadata
diff --git a/mysql-test/main/grant_lowercase.result b/mysql-test/main/grant_lowercase.result
index 0686977f55f..6bea15b11e2 100644
--- a/mysql-test/main/grant_lowercase.result
+++ b/mysql-test/main/grant_lowercase.result
@@ -15,5 +15,5 @@ Warnings:
Warning 1265 Data truncated for column 'Db' at row 1
flush privileges;
delete from mysql.db where db like '=>%';
-alter table mysql.db modify Db char(64) default "", modify User char(80) default "";
+alter table mysql.db modify Db char(64) default "", modify User char(128) default "";
flush privileges;
diff --git a/mysql-test/main/grant_lowercase.test b/mysql-test/main/grant_lowercase.test
index ffd1d4682a0..ee85bb592d3 100644
--- a/mysql-test/main/grant_lowercase.test
+++ b/mysql-test/main/grant_lowercase.test
@@ -22,5 +22,5 @@ alter table mysql.db modify User char(16) default "", modify Db varchar(200) def
insert mysql.db set db=concat('=>', repeat(_utf8 'й', 200));
flush privileges; # shouldn't crash here
delete from mysql.db where db like '=>%';
-alter table mysql.db modify Db char(64) default "", modify User char(80) default "";
+alter table mysql.db modify Db char(64) default "", modify User char(128) default "";
flush privileges;
diff --git a/mysql-test/main/grant_repair.result b/mysql-test/main/grant_repair.result
index d97bcc38a08..6ebe043e4d4 100644
--- a/mysql-test/main/grant_repair.result
+++ b/mysql-test/main/grant_repair.result
@@ -3,7 +3,7 @@ call mtr.add_suppression("mysql.user");
flush tables;
flush privileges;
Warnings:
-Error 145 Table './mysql/user' is marked as crashed and should be repaired
+Error 145 Got error '145 "Table was marked as crashed and should be repaired"' for './mysql/user'
Warning 1034 12544 clients are using or haven't closed the table properly
Note 1034 Table is fixed
# switching back from mysql.user to mysql.global_priv
diff --git a/mysql-test/main/group_min_max.result b/mysql-test/main/group_min_max.result
index d1bd4d8cedb..af9f2767a6c 100644
--- a/mysql-test/main/group_min_max.result
+++ b/mysql-test/main/group_min_max.result
@@ -2664,7 +2664,7 @@ a b
3 13
explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a;
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 SIMPLE t1 ref a,index a 5 const 15 20.00 Using index; Using temporary
+1 SIMPLE t1 range a,index a 5 NULL 3 100.00 Using where; Using index for group-by; Using temporary
Warnings:
Note 1003 select sql_buffer_result `test`.`t1`.`a` AS `a`,max(`test`.`t1`.`b`) + 1 AS `max(b)+1` from `test`.`t1` where `test`.`t1`.`a` = 0 group by `test`.`t1`.`a`
drop table t1;
@@ -4085,3 +4085,24 @@ DROP TABLE t1, t2;
#
# End of 10.5 tests
#
+#
+# MDEV-24353: Adding GROUP BY slows down a query
+#
+CREATE TABLE t1 (p int NOT NULL, a int NOT NULL, PRIMARY KEY (p,a));
+insert into t1 select 2,seq from seq_0_to_1000;
+EXPLAIN select MIN(a) from t1 where p = 2 group by p;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 10 Using where; Using index for group-by
+SELECT MIN(a) from t1 where p = 2 group by p;
+MIN(a)
+0
+EXPLAIN select MIN(a) from t1 group by p;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range NULL PRIMARY 4 NULL 10 Using index for group-by
+SELECT MIN(a) from t1 where p = 2;
+MIN(a)
+0
+drop table t1;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/group_min_max.test b/mysql-test/main/group_min_max.test
index 7de57d75d36..0fa91e4d72b 100644
--- a/mysql-test/main/group_min_max.test
+++ b/mysql-test/main/group_min_max.test
@@ -5,6 +5,7 @@
--source include/no_valgrind_without_big.inc
--source include/default_optimizer_switch.inc
+--source include/have_sequence.inc
--source include/have_innodb.inc
#
# TODO:
@@ -1740,3 +1741,20 @@ DROP TABLE t1, t2;
--echo #
--echo # End of 10.5 tests
--echo #
+
+--echo #
+--echo # MDEV-24353: Adding GROUP BY slows down a query
+--echo #
+
+CREATE TABLE t1 (p int NOT NULL, a int NOT NULL, PRIMARY KEY (p,a));
+insert into t1 select 2,seq from seq_0_to_1000;
+
+EXPLAIN select MIN(a) from t1 where p = 2 group by p;
+SELECT MIN(a) from t1 where p = 2 group by p;
+EXPLAIN select MIN(a) from t1 group by p;
+SELECT MIN(a) from t1 where p = 2;
+drop table t1;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/having.result b/mysql-test/main/having.result
index 5f75c847993..d7cbadd5e75 100644
--- a/mysql-test/main/having.result
+++ b/mysql-test/main/having.result
@@ -832,8 +832,10 @@ ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
-SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t)
-GROUP BY t HAVING r = 1 ORDER BY t1.u;
+explain SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t) GROUP BY t HAVING r = 1 ORDER BY t1.u;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL t 5 NULL 8 Using temporary; Using filesort
+SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t) GROUP BY t HAVING r = 1 ORDER BY t1.u;
t r
10 1
12 1
diff --git a/mysql-test/main/having.test b/mysql-test/main/having.test
index e39d824d3a2..ce86c99865a 100644
--- a/mysql-test/main/having.test
+++ b/mysql-test/main/having.test
@@ -892,8 +892,8 @@ CREATE TABLE t1 (t INT, u INT, KEY(t));
INSERT INTO t1 VALUES(10, 10), (11, 11), (12, 12), (12, 13),(14, 15), (15, 16),
(16, 17), (17, 17);
ANALYZE TABLE t1;
-SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t)
- GROUP BY t HAVING r = 1 ORDER BY t1.u;
+explain SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t) GROUP BY t HAVING r = 1 ORDER BY t1.u;
+SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t) GROUP BY t HAVING r = 1 ORDER BY t1.u;
DROP TABLE t1;
DROP FUNCTION next_seq_value;
diff --git a/mysql-test/main/having_cond_pushdown.test b/mysql-test/main/having_cond_pushdown.test
index 6d42b4ffefe..99e4a597f22 100644
--- a/mysql-test/main/having_cond_pushdown.test
+++ b/mysql-test/main/having_cond_pushdown.test
@@ -73,14 +73,18 @@ GROUP BY t1.a
HAVING (t1.a>1) OR (a IN (SELECT 3));
eval $no_pushdown $query;
eval $query;
+--enable_prepare_warnings
eval explain $query;
eval explain format=json $query;
+--disable_prepare_warnings
let $query=
SELECT t1.a,MAX(t1.b)
FROM t1
WHERE (t1.a>1) OR (a IN (SELECT 3))
GROUP BY t1.a;
+--enable_prepare_warnings
eval $no_pushdown explain format=json $query;
+--disable_prepare_warnings
let $query=
SELECT t1.a,MAX(t1.b),MIN(t1.c)
diff --git a/mysql-test/main/ignored_index.result b/mysql-test/main/ignored_index.result
new file mode 100644
index 00000000000..03748d48098
--- /dev/null
+++ b/mysql-test/main/ignored_index.result
@@ -0,0 +1,530 @@
+#
+# MDEV-7317: Make an index ignorable to the optimizer
+#
+# Test of ALTER INDEX syntax.
+CREATE TABLE t1 ( a INT, KEY (a) );
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+DROP TABLE t1;
+# Test of CREATE INDEX syntax with IGNORED indexes.
+CREATE TABLE t1 ( a INT, b INT );
+CREATE INDEX a_ignorable ON t1(a) IGNORED;
+CREATE INDEX b_not_ignorable ON t1(a) NOT IGNORED;
+Warnings:
+Note 1831 Duplicate index `b_not_ignorable`. This is deprecated and will be disallowed in a future release
+CREATE INDEX a_b_ignorable ON t1(a, b) IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a_ignorable 1 a A NULL NULL NULL YES BTREE YES
+t1 1 b_not_ignorable 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_b_ignorable 1 a A NULL NULL NULL YES BTREE YES
+t1 1 a_b_ignorable 2 b A NULL NULL NULL YES BTREE YES
+DROP TABLE t1;
+# Test that IGNORED indexes are not used.
+CREATE TABLE t1 ( a INT, KEY (a) );
+CREATE TABLE t2 ( a INT, KEY (a) IGNORED );
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 SELECT * FROM t1;
+ANALYZE TABLE t1, t2;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+test.t2 analyze status Engine-independent statistics collected
+test.t2 analyze status Table is already up to date
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 5 Using index
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 5 Using index
+EXPLAIN SELECT a FROM t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5
+ALTER TABLE t2 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL a 5 NULL 5 Using index
+DROP TABLE t1, t2;
+# Test that renaming an index does not change ignorability and vice versa.
+CREATE TABLE t1 (
+a INT, INDEX (a),
+b INT, INDEX (b) IGNORED
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 RENAME INDEX a TO a1;
+ALTER TABLE t1 RENAME INDEX b TO b1;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a1 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b1 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a1 IGNORED;
+ALTER TABLE t1 ALTER INDEX b1 NOT IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a1 1 a A NULL NULL NULL YES BTREE YES
+t1 1 b1 1 b A NULL NULL NULL YES BTREE NO
+DROP TABLE t1;
+# Test of SHOW CREATE TABLE.
+CREATE TABLE t1 (
+a INT,
+b INT,
+c INT,
+INDEX (a) NOT IGNORED,
+INDEX (b) IGNORED,
+INDEX (c)
+);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ `c` int(11) DEFAULT NULL,
+ KEY `a` (`a`),
+ KEY `b` (`b`) IGNORED,
+ KEY `c` (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+# Test that primary key indexes can't be made ignorable.
+CREATE TABLE t1 ( a INT, PRIMARY KEY (a) IGNORED );
+ERROR HY000: A primary key cannot be marked as IGNORE
+CREATE TABLE t1 ( a INT PRIMARY KEY IGNORED );
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IGNORED )' at line 1
+CREATE TABLE t1 ( a INT KEY IGNORED );
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IGNORED )' at line 1
+ALTER TABLE t1 ALTER INDEX PRIMARY IGNORED;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PRIMARY IGNORED' at line 1
+CREATE TABLE t1(a INT NOT NULL);
+ALTER TABLE t1 ADD PRIMARY KEY (a) IGNORED;
+ERROR HY000: A primary key cannot be marked as IGNORE
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT, KEY (a),
+b INT, KEY (b) IGNORED
+);
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORED;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT, KEY (a),
+b INT, KEY (b) IGNORED
+);
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORED;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+#
+# Repeated alter actions. Should work.
+#
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALTER INDEX a NOT IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, ALTER INDEX b IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+#
+# Various combinations of RENAME INDEX and ALTER INDEX ... IGNORED.
+#
+ALTER TABLE t1 RENAME INDEX a TO x, RENAME INDEX x TO a;
+ERROR 42000: Key 'x' doesn't exist in table 't1'
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX x IGNORED;
+ERROR 42000: Key 'x' doesn't exist in table 't1'
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX a NOT IGNORED;
+ERROR 42000: Key 'a' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, RENAME INDEX a TO x;
+ERROR 42000: Key 'a' doesn't exist in table 't1'
+#
+# Various algorithms and their effects.
+#
+INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALGORITHM = COPY;
+affected rows: 3
+info: Records: 3 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 3 NULL NULL YES BTREE YES
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, ALGORITHM = INPLACE;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 3 NULL NULL YES BTREE NO
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALGORITHM = DEFAULT;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 3 NULL NULL YES BTREE YES
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 3 NULL NULL YES BTREE NO
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ADD INDEX ab(a, b), ALTER INDEX ab IGNORED;
+ERROR 42000: Key 'ab' doesn't exist in table 't1'
+DROP TABLE t1;
+#
+# The first NOT NULL UNIQUE index may of course be IGNORED if it is
+# not promoted to a primary key
+#
+CREATE TABLE t1 (
+a INT NOT NULL,
+b INT NOT NULL PRIMARY KEY,
+UNIQUE KEY (a) IGNORED
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 b A 0 NULL NULL BTREE NO
+t1 0 a 1 a A 0 NULL NULL BTREE YES
+DROP TABLE t1;
+# The check above applies only to the first NOT NULL UNIQUE index.
+CREATE TABLE t1 (
+a INT NOT NULL,
+b INT NOT NULL,
+UNIQUE KEY (a),
+UNIQUE KEY (b) IGNORED
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A 0 NULL NULL BTREE NO
+t1 0 b 1 b A 0 NULL NULL BTREE YES
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT NOT NULL, UNIQUE KEY (a) IGNORED);
+ERROR HY000: A primary key cannot be marked as IGNORE
+CREATE TEMPORARY TABLE t1 ( a INT, KEY (a) IGNORED);
+INSERT INTO t1 VALUES (0), (1), (2), (3);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 4 Using index
+DROP TABLE t1;
+#
+# IGNORED fulltext indexes.
+#
+CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
+INSERT INTO t1 VALUES('Some data', 'for full-text search');
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
+test.t1 analyze status OK
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 fulltext a a 0 1 Using where
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+ERROR HY000: Can't find FULLTEXT index matching the column list
+DROP TABLE t1;
+#
+# IGNORED indexes on AUTO_INCREMENT columns.
+#
+CREATE TABLE t1 ( a INT AUTO_INCREMENT, KEY ( a ) );
+INSERT INTO t1 VALUES (), (), ();
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 4 NULL 3 Using index
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 3 NULL NULL BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+DROP TABLE t1;
+#
+# IGNORED spatial indexes
+#
+CREATE TABLE t1 (
+fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+g GEOMETRY NOT NULL,
+SPATIAL KEY key1(g)
+);
+EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range key1 key1 34 NULL 8 Using where
+ALTER TABLE t1 ALTER INDEX key1 IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 fid A 150 NULL NULL BTREE NO
+t1 1 key1 1 g A NULL 32 NULL SPATIAL YES
+EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 150 Using where
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT GENERATED ALWAYS AS (1), KEY key1(a));
+INSERT INTO t1 VALUES (),(),();
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 key1 1 a A NULL NULL NULL YES BTREE NO
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL key1 5 NULL 3 Using index
+ALTER TABLE t1 ALTER INDEX key1 IGNORED;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 key1 1 a A NULL NULL NULL YES BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+DROP TABLE t1;
+#
+# Partitioning on keys with an IGNORED index, IGNORED indexes over
+# partitioned tables.
+#
+CREATE TABLE t1 (
+a CHAR(2) NOT NULL,
+b CHAR(2) NOT NULL,
+c INT(10) UNSIGNED NOT NULL,
+d VARCHAR(255) DEFAULT NULL,
+e VARCHAR(1000) DEFAULT NULL,
+KEY (a) IGNORED,
+KEY (b)
+) PARTITION BY KEY (a) PARTITIONS 20;
+INSERT INTO t1 (a, b, c, d, e) VALUES
+('07', '03', 343, '1', '07_03_343'),
+('01', '04', 343, '2', '01_04_343'),
+('01', '06', 343, '3', '01_06_343'),
+('01', '07', 343, '4', '01_07_343'),
+('01', '08', 343, '5', '01_08_343'),
+('01', '09', 343, '6', '01_09_343'),
+('03', '03', 343, '7', '03_03_343'),
+('03', '06', 343, '8', '03_06_343'),
+('03', '07', 343, '9', '03_07_343'),
+('04', '03', 343, '10', '04_03_343'),
+('04', '06', 343, '11', '04_06_343'),
+('05', '03', 343, '12', '05_03_343'),
+('11', '03', 343, '13', '11_03_343'),
+('11', '04', 343, '14', '11_04_343');
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 14
+EXPLAIN SELECT b FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 2 NULL 14 Using index
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using where
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 2 NULL 14 Using index
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 2 const 2 Using where
+ALTER TABLE t1 ALTER INDEX b IGNORED;
+EXPLAIN SELECT b FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 14
+DROP TABLE t1;
+#
+# Using FORCE INDEX for an IGNORED index
+#
+CREATE TABLE t1(a INT, key k1(a));
+INSERT INTO t1 VALUES (1),(2),(3);
+EXPLAIN SELECT * FROM t1 FORCE INDEX(k1);
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL k1 5 NULL 3 Using index
+ALTER TABLE t1 ALTER INDEX k1 IGNORED;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ KEY `k1` (`a`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+EXPLAIN SELECT * FROM t1 FORCE INDEX(k1);
+ERROR 42000: Key 'k1' doesn't exist in table 't1'
+DROP TABLE t1;
+#
+# MDEV-25075: Ignorable index makes the resulting CREATE TABLE invalid
+#
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT, KEY (a) IGNORED);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+#
+# Tests to check usage of IGNORED keyword
+#
+CREATE TABLE IGNORED(a INT);
+DROP TABLE IGNORED;
+CREATE TABLE t1(a INT);
+SELECT * FROM t1 IGNORED;
+a
+CREATE FUNCTION f1(a INT) RETURNS INT
+BEGIN
+DECLARE IGNORED INT DEFAULT 0;
+RETURN 0;
+END|
+CREATE FUNCTION f2(a INT) RETURNS INT
+BEGIN
+DECLARE IGNORED INT DEFAULT 0;
+DECLARE x INT DEFAULT 0;
+SET x= IGNORED;
+RETURN 0;
+END|
+DROP TABLE t1;
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+CREATE PROCEDURE test_sp()
+BEGIN
+ignored:
+LOOP
+LEAVE ignored;
+END LOOP;
+END|
+DROP PROCEDURE test_sp;
+CREATE PROCEDURE test_sp()
+BEGIN
+set @@ignored= 1;
+END|
+ERROR HY000: Unknown system variable 'ignored'
+CREATE PROCEDURE proc()
+BEGIN
+SET IGNORED= a+b;
+END |
+ERROR HY000: Unknown system variable 'IGNORED'
+#
+# ALLOWING ALTER KEY syntax in ALTER TABLE
+#
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER KEY a IGNORED;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+DROP TABLE t1;
+#
+# MDEV-25078, part #2: allow IF EXISTS
+#
+create table t1 (a int, b int, c int, key(a), key(b), key(c));
+alter table t1 alter key if exists no_such_key ignored;
+Warnings:
+Note 1176 Key 'no_such_key' doesn't exist in table 't1'
+alter table t1 alter key if exists a ignored;
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ `c` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED,
+ KEY `b` (`b`),
+ KEY `c` (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+alter table t1
+alter key if exists no_such_key ignored,
+alter key if exists c ignored ;
+Warnings:
+Note 1176 Key 'no_such_key' doesn't exist in table 't1'
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ `c` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED,
+ KEY `b` (`b`),
+ KEY `c` (`c`) IGNORED
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+alter table t1
+alter key if exists no_such_key not ignored,
+alter key if exists c not ignored ;
+Warnings:
+Note 1176 Key 'no_such_key' doesn't exist in table 't1'
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ `c` int(11) DEFAULT NULL,
+ KEY `a` (`a`) IGNORED,
+ KEY `b` (`b`),
+ KEY `c` (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
+drop table t1;
diff --git a/mysql-test/main/ignored_index.test b/mysql-test/main/ignored_index.test
new file mode 100644
index 00000000000..a3d46fe6046
--- /dev/null
+++ b/mysql-test/main/ignored_index.test
@@ -0,0 +1,464 @@
+--echo #
+--echo # MDEV-7317: Make an index ignorable to the optimizer
+--echo #
+
+
+--echo # Test of ALTER INDEX syntax.
+
+CREATE TABLE t1 ( a INT, KEY (a) );
+SHOW KEYS FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW KEYS FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+SHOW KEYS FROM t1;
+DROP TABLE t1;
+
+--echo # Test of CREATE INDEX syntax with IGNORED indexes.
+
+CREATE TABLE t1 ( a INT, b INT );
+CREATE INDEX a_ignorable ON t1(a) IGNORED;
+CREATE INDEX b_not_ignorable ON t1(a) NOT IGNORED;
+CREATE INDEX a_b_ignorable ON t1(a, b) IGNORED;
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--echo # Test that IGNORED indexes are not used.
+
+CREATE TABLE t1 ( a INT, KEY (a) );
+CREATE TABLE t2 ( a INT, KEY (a) IGNORED );
+
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 SELECT * FROM t1;
+
+ANALYZE TABLE t1, t2;
+
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+
+EXPLAIN SELECT a FROM t2;
+ALTER TABLE t2 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t2;
+
+DROP TABLE t1, t2;
+
+--echo # Test that renaming an index does not change ignorability and vice versa.
+
+CREATE TABLE t1 (
+ a INT, INDEX (a),
+ b INT, INDEX (b) IGNORED
+);
+
+SHOW INDEXES FROM t1;
+
+ALTER TABLE t1 RENAME INDEX a TO a1;
+ALTER TABLE t1 RENAME INDEX b TO b1;
+
+SHOW INDEXES FROM t1;
+
+ALTER TABLE t1 ALTER INDEX a1 IGNORED;
+ALTER TABLE t1 ALTER INDEX b1 NOT IGNORED;
+
+SHOW INDEXES FROM t1;
+
+DROP TABLE t1;
+
+--echo # Test of SHOW CREATE TABLE.
+
+CREATE TABLE t1 (
+ a INT,
+ b INT,
+ c INT,
+ INDEX (a) NOT IGNORED,
+ INDEX (b) IGNORED,
+ INDEX (c)
+);
+
+SHOW CREATE TABLE t1;
+
+DROP TABLE t1;
+
+--echo # Test that primary key indexes can't be made ignorable.
+
+--error ER_PK_INDEX_CANT_BE_IGNORED
+CREATE TABLE t1 ( a INT, PRIMARY KEY (a) IGNORED );
+--error ER_PARSE_ERROR
+CREATE TABLE t1 ( a INT PRIMARY KEY IGNORED );
+--error ER_PARSE_ERROR
+CREATE TABLE t1 ( a INT KEY IGNORED );
+--error ER_PARSE_ERROR
+ALTER TABLE t1 ALTER INDEX PRIMARY IGNORED;
+
+CREATE TABLE t1(a INT NOT NULL);
+--error ER_PK_INDEX_CANT_BE_IGNORED
+ALTER TABLE t1 ADD PRIMARY KEY (a) IGNORED;
+
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (
+ a INT, KEY (a),
+ b INT, KEY (b) IGNORED
+);
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORED;
+
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (
+ a INT, KEY (a),
+ b INT, KEY (b) IGNORED
+);
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORED;
+
+
+--echo #
+--echo # Repeated alter actions. Should work.
+--echo #
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALTER INDEX a NOT IGNORED;
+SHOW INDEXES FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, ALTER INDEX b IGNORED;
+SHOW INDEXES FROM t1;
+
+
+--echo #
+--echo # Various combinations of RENAME INDEX and ALTER INDEX ... IGNORED.
+--echo #
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, RENAME INDEX x TO a;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX x IGNORED;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX a NOT IGNORED;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, RENAME INDEX a TO x;
+
+
+--echo #
+--echo # Various algorithms and their effects.
+--echo #
+
+INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
+ANALYZE TABLE t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALGORITHM = COPY;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED, ALGORITHM = INPLACE;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a IGNORED, ALGORITHM = DEFAULT;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ADD INDEX ab(a, b), ALTER INDEX ab IGNORED;
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # The first NOT NULL UNIQUE index may of course be IGNORED if it is
+--echo # not promoted to a primary key
+--echo #
+
+CREATE TABLE t1 (
+ a INT NOT NULL,
+ b INT NOT NULL PRIMARY KEY,
+ UNIQUE KEY (a) IGNORED
+);
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--echo # The check above applies only to the first NOT NULL UNIQUE index.
+CREATE TABLE t1 (
+ a INT NOT NULL,
+ b INT NOT NULL,
+ UNIQUE KEY (a),
+ UNIQUE KEY (b) IGNORED
+);
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--error ER_PK_INDEX_CANT_BE_IGNORED
+CREATE TABLE t1 ( a INT NOT NULL, UNIQUE KEY (a) IGNORED);
+
+
+CREATE TEMPORARY TABLE t1 ( a INT, KEY (a) IGNORED);
+INSERT INTO t1 VALUES (0), (1), (2), (3);
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+
+DROP TABLE t1;
+
+--echo #
+--echo # IGNORED fulltext indexes.
+--echo #
+CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
+INSERT INTO t1 VALUES('Some data', 'for full-text search');
+ANALYZE TABLE t1;
+
+let $query=
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+
+--eval $query
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+
+--error ER_FT_MATCHING_KEY_NOT_FOUND
+--eval $query
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # IGNORED indexes on AUTO_INCREMENT columns.
+--echo #
+CREATE TABLE t1 ( a INT AUTO_INCREMENT, KEY ( a ) );
+INSERT INTO t1 VALUES (), (), ();
+ANALYZE TABLE t1;
+
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+
+DROP TABLE t1;
+
+--echo #
+--echo # IGNORED spatial indexes
+--echo #
+
+
+CREATE TABLE t1 (
+ fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ g GEOMETRY NOT NULL,
+ SPATIAL KEY key1(g)
+);
+
+--disable_query_log
+let $1=150;
+let $2=150;
+while ($1)
+{
+ eval INSERT INTO t1 (g) VALUES (GeomFromText('LineString($1 $1, $2 $2)'));
+ dec $1;
+ inc $2;
+}
+--enable_query_log
+
+let $query= EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+
+eval $query;
+ALTER TABLE t1 ALTER INDEX key1 IGNORED;
+SHOW INDEXES FROM t1;
+eval $query;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 ( a INT GENERATED ALWAYS AS (1), KEY key1(a));
+INSERT INTO t1 VALUES (),(),();
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX key1 IGNORED;
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+DROP TABLE t1;
+
+
+--echo #
+--echo # Partitioning on keys with an IGNORED index, IGNORED indexes over
+--echo # partitioned tables.
+--echo #
+
+--source include/have_partition.inc
+
+CREATE TABLE t1 (
+ a CHAR(2) NOT NULL,
+ b CHAR(2) NOT NULL,
+ c INT(10) UNSIGNED NOT NULL,
+ d VARCHAR(255) DEFAULT NULL,
+ e VARCHAR(1000) DEFAULT NULL,
+ KEY (a) IGNORED,
+ KEY (b)
+) PARTITION BY KEY (a) PARTITIONS 20;
+
+
+INSERT INTO t1 (a, b, c, d, e) VALUES
+('07', '03', 343, '1', '07_03_343'),
+('01', '04', 343, '2', '01_04_343'),
+('01', '06', 343, '3', '01_06_343'),
+('01', '07', 343, '4', '01_07_343'),
+('01', '08', 343, '5', '01_08_343'),
+('01', '09', 343, '6', '01_09_343'),
+('03', '03', 343, '7', '03_03_343'),
+('03', '06', 343, '8', '03_06_343'),
+('03', '07', 343, '9', '03_07_343'),
+('04', '03', 343, '10', '04_03_343'),
+('04', '06', 343, '11', '04_06_343'),
+('05', '03', 343, '12', '05_03_343'),
+('11', '03', 343, '13', '11_03_343'),
+('11', '04', 343, '14', '11_04_343');
+
+ANALYZE TABLE t1;
+
+EXPLAIN SELECT a FROM t1;
+EXPLAIN SELECT b FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+ALTER TABLE t1 ALTER INDEX a NOT IGNORED;
+EXPLAIN SELECT a FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+
+ALTER TABLE t1 ALTER INDEX b IGNORED;
+EXPLAIN SELECT b FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # Using FORCE INDEX for an IGNORED index
+--echo #
+
+CREATE TABLE t1(a INT, key k1(a));
+INSERT INTO t1 VALUES (1),(2),(3);
+
+EXPLAIN SELECT * FROM t1 FORCE INDEX(k1);
+ALTER TABLE t1 ALTER INDEX k1 IGNORED;
+SHOW CREATE TABLE t1;
+--error ER_KEY_DOES_NOT_EXISTS
+EXPLAIN SELECT * FROM t1 FORCE INDEX(k1);
+
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-25075: Ignorable index makes the resulting CREATE TABLE invalid
+--echo #
+
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+show create table t1;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 ( a INT, KEY (a) IGNORED);
+show create table t1;
+
+DROP TABLE t1;
+
+--echo #
+--echo # Tests to check usage of IGNORED keyword
+--echo #
+
+CREATE TABLE IGNORED(a INT);
+DROP TABLE IGNORED;
+
+CREATE TABLE t1(a INT);
+SELECT * FROM t1 IGNORED;
+
+DELIMITER |;
+
+CREATE FUNCTION f1(a INT) RETURNS INT
+BEGIN
+ DECLARE IGNORED INT DEFAULT 0;
+ RETURN 0;
+END|
+
+CREATE FUNCTION f2(a INT) RETURNS INT
+BEGIN
+ DECLARE IGNORED INT DEFAULT 0;
+ DECLARE x INT DEFAULT 0;
+ SET x= IGNORED;
+ RETURN 0;
+END|
+
+DELIMITER ;|
+DROP TABLE t1;
+
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+
+DELIMITER |;
+CREATE PROCEDURE test_sp()
+BEGIN
+ ignored:
+ LOOP
+ LEAVE ignored;
+ END LOOP;
+END|
+
+DELIMITER ;|
+DROP PROCEDURE test_sp;
+
+DELIMITER |;
+--error ER_UNKNOWN_SYSTEM_VARIABLE
+CREATE PROCEDURE test_sp()
+BEGIN
+ set @@ignored= 1;
+END|
+DELIMITER ;|
+
+DELIMITER |;
+--error ER_UNKNOWN_SYSTEM_VARIABLE
+CREATE PROCEDURE proc()
+BEGIN
+ SET IGNORED= a+b;
+END |
+DELIMITER ;|
+
+--echo #
+--echo # ALLOWING ALTER KEY syntax in ALTER TABLE
+--echo #
+
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER INDEX a IGNORED;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+CREATE TABLE t1 (a INT, KEY (a));
+ALTER TABLE t1 ALTER KEY a IGNORED;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-25078, part #2: allow IF EXISTS
+--echo #
+
+create table t1 (a int, b int, c int, key(a), key(b), key(c));
+alter table t1 alter key if exists no_such_key ignored;
+alter table t1 alter key if exists a ignored;
+show create table t1;
+alter table t1
+ alter key if exists no_such_key ignored,
+ alter key if exists c ignored ;
+show create table t1;
+alter table t1
+ alter key if exists no_such_key not ignored,
+ alter key if exists c not ignored ;
+show create table t1;
+drop table t1;
+
+
diff --git a/mysql-test/main/ignored_index_innodb.result b/mysql-test/main/ignored_index_innodb.result
new file mode 100644
index 00000000000..cc7af31ef97
--- /dev/null
+++ b/mysql-test/main/ignored_index_innodb.result
@@ -0,0 +1,7 @@
+create table t1 (a int, b int, key a1(a)) engine=innodb;
+insert into t1 values (1,1),(2,2),(3,3);
+set alter_algorithm='instant';
+alter table t1 alter index a1 ignored;
+alter table t1 alter index a1 not ignored;
+set alter_algorithm=default;
+drop table t1;
diff --git a/mysql-test/main/ignored_index_innodb.test b/mysql-test/main/ignored_index_innodb.test
new file mode 100644
index 00000000000..c25cdc8d928
--- /dev/null
+++ b/mysql-test/main/ignored_index_innodb.test
@@ -0,0 +1,16 @@
+--source include/have_innodb.inc
+
+#
+# Check if marking index as [not] ignored is an instant operation with InnoDB
+#
+create table t1 (a int, b int, key a1(a)) engine=innodb;
+insert into t1 values (1,1),(2,2),(3,3);
+
+set alter_algorithm='instant';
+alter table t1 alter index a1 ignored;
+
+alter table t1 alter index a1 not ignored;
+
+set alter_algorithm=default;
+drop table t1;
+
diff --git a/mysql-test/main/index_merge_innodb.result b/mysql-test/main/index_merge_innodb.result
index 8a2e01c7abf..d9be08a0540 100644
--- a/mysql-test/main/index_merge_innodb.result
+++ b/mysql-test/main/index_merge_innodb.result
@@ -6,6 +6,8 @@ SET DEFAULT_STORAGE_ENGINE = InnoDB;
set @optimizer_switch_save= @@optimizer_switch;
set optimizer_switch='index_merge_sort_intersection=off';
set optimizer_switch='rowid_filter=off';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
#---------------- Index merge test 2 -------------------------------------------
create table t1
(
@@ -815,8 +817,6 @@ set optimizer_switch=@tmp_optimizer_switch;
# on optimized builds
#
SET @save_sort_buffer_size=@@sort_buffer_size;
-SET @save_innodb_file_format= @@innodb_file_format;
-SET @save_innodb_large_prefix= @@innodb_large_prefix;
SET sort_buffer_size=2048;
CREATE TABLE t1 (
a VARCHAR(1024) CHARACTER SET UTF8 PRIMARY KEY,
@@ -837,3 +837,4 @@ a b c
DROP TABLE t1;
SET sort_buffer_size= @save_sort_buffer_size;
disconnect disable_purge;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/index_merge_innodb.test b/mysql-test/main/index_merge_innodb.test
index 17b7a381595..82f3c756da4 100644
--- a/mysql-test/main/index_merge_innodb.test
+++ b/mysql-test/main/index_merge_innodb.test
@@ -28,6 +28,9 @@ set @optimizer_switch_save= @@optimizer_switch;
set optimizer_switch='index_merge_sort_intersection=off';
set optimizer_switch='rowid_filter=off';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
+
# The first two tests are disabled because of non deterministic explain output.
# If include/index_merge1.inc can be enabled for InnoDB and all other
# storage engines, please remove the subtest for Bug#21277 from
@@ -207,8 +210,6 @@ set optimizer_switch=@tmp_optimizer_switch;
--echo #
SET @save_sort_buffer_size=@@sort_buffer_size;
-SET @save_innodb_file_format= @@innodb_file_format;
-SET @save_innodb_large_prefix= @@innodb_large_prefix;
SET sort_buffer_size=2048;
CREATE TABLE t1 (
@@ -225,3 +226,4 @@ DROP TABLE t1;
SET sort_buffer_size= @save_sort_buffer_size;
disconnect disable_purge;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/information_schema.result b/mysql-test/main/information_schema.result
index 16081c2642c..156a7a11578 100644
--- a/mysql-test/main/information_schema.result
+++ b/mysql-test/main/information_schema.result
@@ -13,7 +13,8 @@ select * from information_schema.SCHEMATA where schema_name > 'm';
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH SCHEMA_COMMENT
def mtr latin1 latin1_swedish_ci NULL
def mysql latin1 latin1_swedish_ci NULL
-def performance_schema utf8 utf8_general_ci NULL
+def performance_schema utf8mb3 utf8mb3_general_ci NULL
+def sys utf8mb3 utf8mb3_general_ci NULL
def test latin1 latin1_swedish_ci NULL
select schema_name from information_schema.schemata;
schema_name
@@ -21,6 +22,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
show databases like 't%';
Database (t%)
@@ -31,6 +33,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
show databases where `database` = 't%';
Database
@@ -203,11 +206,11 @@ table_name
t1
t4
select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE NO
show keys from t3 where Key_name = "a_data";
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a_data 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t3 1 a_data 1 a A NULL NULL NULL YES BTREE NO
show tables like 't%';
Tables_in_test (t%)
t2
@@ -224,10 +227,10 @@ Field Type Collation Null Key Default Extra Privileges Comment
a int(11) NULL YES MUL NULL select,insert,update,references
show full columns from mysql.db like "Insert%";
Field Type Collation Null Key Default Extra Privileges Comment
-Insert_priv enum('N','Y') utf8_general_ci NO N select,insert,update,references
+Insert_priv enum('N','Y') utf8mb3_general_ci NO N select,insert,update,references
show full columns from v1;
Field Type Collation Null Key Default Extra Privileges Comment
-c varchar(64) utf8_general_ci NO NULL select,insert,update,references
+c varchar(64) utf8mb3_general_ci NO NULL select,insert,update,references
select * from information_schema.COLUMNS where table_name="t1"
and column_name= "a";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT IS_GENERATED GENERATION_EXPRESSION
@@ -370,12 +373,12 @@ test sub1
drop view v1;
connect user1,localhost,mysqltest_1,,;
connection user1;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
ROUTINE_NAME ROUTINE_DEFINITION
show create function sub1;
ERROR 42000: FUNCTION sub1 does not exist
connection user3;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
ROUTINE_NAME ROUTINE_DEFINITION
sel2 NULL
sub1 NULL
@@ -383,13 +386,13 @@ connection default;
grant all privileges on test.* to mysqltest_1@localhost;
connect user2,localhost,mysqltest_1,,;
connection user2;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
ROUTINE_NAME ROUTINE_DEFINITION
sel2 NULL
sub1 NULL
create function sub2(i int) returns int
return i+1;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
ROUTINE_NAME ROUTINE_DEFINITION
sel2 NULL
sub1 NULL
@@ -425,6 +428,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
explain select * from v0;
id select_type table type possible_keys key key_len ref rows Extra
@@ -459,8 +463,8 @@ latin1_spanish_ci
latin1_swedish_nopad_ci
latin1_nopad_bin
show keys from v4;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-select * from information_schema.views where TABLE_NAME like "v%";
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+select * from information_schema.views where TABLE_NAME like "v%" AND TABLE_SCHEMA <> 'sys';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
def test v0 select `information_schema`.`schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER latin1 latin1_swedish_ci UNDEFINED
def test v1 select `information_schema`.`tables`.`TABLE_NAME` AS `c` from `information_schema`.`tables` where `information_schema`.`tables`.`TABLE_NAME` = 'v1' NONE NO root@localhost DEFINER latin1 latin1_swedish_ci UNDEFINED
@@ -565,7 +569,7 @@ create table t1(a int);
create view v1 (c) as select a from t1 with check option;
create view v2 (c) as select a from t1 WITH LOCAL CHECK OPTION;
create view v3 (c) as select a from t1 WITH CASCADED CHECK OPTION;
-select * from information_schema.views;
+select * from information_schema.views where table_schema <> 'sys';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
def mysql user select `mysql`.`global_priv`.`Host` AS `Host`,`mysql`.`global_priv`.`User` AS `User`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.plugin') in ('mysql_native_password','mysql_old_password'),ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.authentication_string'),''),'') AS `Password`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 1,'Y','N') AS `Select_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 2,'Y','N') AS `Insert_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 4,'Y','N') AS `Update_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 8,'Y','N') AS `Delete_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 16,'Y','N') AS `Create_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 32,'Y','N') AS `Drop_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 64,'Y','N') AS `Reload_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 128,'Y','N') AS `Shutdown_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 256,'Y','N') AS `Process_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 512,'Y','N') AS `File_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 1024,'Y','N') AS `Grant_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 2048,'Y','N') AS `References_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 4096,'Y','N') AS `Index_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 8192,'Y','N') AS `Alter_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 16384,'Y','N') AS `Show_db_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 32768,'Y','N') AS `Super_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 65536,'Y','N') AS `Create_tmp_table_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 131072,'Y','N') AS `Lock_tables_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 262144,'Y','N') AS `Execute_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 524288,'Y','N') AS `Repl_slave_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 1048576,'Y','N') AS `Repl_client_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 2097152,'Y','N') AS `Create_view_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 4194304,'Y','N') AS `Show_view_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 8388608,'Y','N') AS `Create_routine_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 16777216,'Y','N') AS `Alter_routine_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 33554432,'Y','N') AS `Create_user_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 67108864,'Y','N') AS `Event_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 134217728,'Y','N') AS `Trigger_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 268435456,'Y','N') AS `Create_tablespace_priv`,if(json_value(`mysql`.`global_priv`.`Priv`,'$.access') & 536870912,'Y','N') AS `Delete_history_priv`,elt(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.ssl_type'),0) + 1,'','ANY','X509','SPECIFIED') AS `ssl_type`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.ssl_cipher'),'') AS `ssl_cipher`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.x509_issuer'),'') AS `x509_issuer`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.x509_subject'),'') AS `x509_subject`,cast(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.max_questions'),0) as unsigned) AS `max_questions`,cast(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.max_updates'),0) as unsigned) AS `max_updates`,cast(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.max_connections'),0) as unsigned) AS `max_connections`,cast(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.max_user_connections'),0) as signed) AS `max_user_connections`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.plugin'),'') AS `plugin`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.authentication_string'),'') AS `authentication_string`,if(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.password_last_changed'),1) = 0,'Y','N') AS `password_expired`,elt(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.is_role'),0) + 1,'N','Y') AS `is_role`,ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.default_role'),'') AS `default_role`,cast(ifnull(json_value(`mysql`.`global_priv`.`Priv`,'$.max_statement_time'),0.0) as decimal(12,6)) AS `max_statement_time` from `mysql`.`global_priv` NONE YES mariadb.sys@localhost DEFINER latin1 latin1_swedish_ci UNDEFINED
def test v1 select `test`.`t1`.`a` AS `c` from `test`.`t1` CASCADED YES root@localhost DEFINER latin1 latin1_swedish_ci UNDEFINED
@@ -609,7 +613,7 @@ CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL,
`DESCRIPTION` varchar(60) NOT NULL,
`MAXLEN` bigint(3) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
set names latin2;
SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
Table Create Table
@@ -618,7 +622,7 @@ CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` (
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL,
`DESCRIPTION` varchar(60) NOT NULL,
`MAXLEN` bigint(3) NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
set names latin1;
create table t1 select * from information_schema.CHARACTER_SETS
where CHARACTER_SET_NAME like "latin1";
@@ -633,7 +637,7 @@ t1 CREATE TABLE `t1` (
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL,
`DESCRIPTION` varchar(60) NOT NULL,
`MAXLEN` bigint(3) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
create view v1 as select * from information_schema.TABLES;
drop view v1;
@@ -669,7 +673,7 @@ proc security_type enum('INVOKER','DEFINER')
proc param_list blob
proc returns longblob
proc body longblob
-proc definer char(141)
+proc definer varchar(384)
proc created timestamp
proc modified timestamp
proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL')
@@ -693,7 +697,7 @@ user
drop view v1;
create view vo as select 'a' union select 'a';
show index from vo;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
select * from information_schema.TABLE_CONSTRAINTS where
TABLE_NAME= "vo";
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
@@ -886,6 +890,20 @@ information_schema TRIGGERS ACTION_CONDITION
information_schema TRIGGERS ACTION_STATEMENT
information_schema VIEWS VIEW_DEFINITION
mysql global_priv Priv
+sys innodb_lock_waits waiting_query
+sys innodb_lock_waits blocking_query
+sys processlist current_statement
+sys processlist last_statement
+sys schema_auto_increment_columns column_type
+sys schema_table_lock_waits waiting_query
+sys session current_statement
+sys session last_statement
+sys statement_analysis query
+sys statements_with_errors_or_warnings query
+sys statements_with_full_table_scans query
+sys statements_with_runtimes_in_95th_percentile query
+sys statements_with_sorting query
+sys statements_with_temp_tables query
mysql user Password
mysql user ssl_cipher
mysql user x509_issuer
@@ -893,6 +911,17 @@ mysql user x509_subject
mysql user plugin
mysql user authentication_string
mysql user default_role
+sys x$processlist current_statement
+sys x$processlist last_statement
+sys x$schema_table_lock_waits waiting_query
+sys x$session current_statement
+sys x$session last_statement
+sys x$statement_analysis query
+sys x$statements_with_errors_or_warnings query
+sys x$statements_with_full_table_scans query
+sys x$statements_with_runtimes_in_95th_percentile query
+sys x$statements_with_sorting query
+sys x$statements_with_temp_tables query
select table_name, column_name, data_type from information_schema.columns
where data_type = 'datetime' and table_name not like 'innodb_%'
order by binary table_name, ordinal_position;
@@ -922,6 +951,9 @@ event execute_at datetime
event last_executed datetime
event starts datetime
event ends datetime
+x$innodb_lock_waits wait_started datetime
+x$innodb_lock_waits waiting_trx_started datetime
+x$innodb_lock_waits blocking_trx_started datetime
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
WHERE NOT EXISTS
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
@@ -1125,7 +1157,7 @@ drop procedure if exists p2;
create procedure p1 () modifies sql data set @a = 5;
create procedure p2 () set @a = 5;
select sql_data_access from information_schema.routines
-where specific_name like 'p%';
+where specific_name like 'p%' and routine_schema = 'test';
sql_data_access
MODIFIES SQL DATA
CONTAINS SQL
@@ -1133,7 +1165,7 @@ drop procedure p1;
drop procedure p2;
show create database information_schema;
Database Create Database
-information_schema CREATE DATABASE `information_schema` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+information_schema CREATE DATABASE `information_schema` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
create table t1(f1 LONGBLOB, f2 LONGTEXT);
select column_name,data_type,CHARACTER_OCTET_LENGTH,
CHARACTER_MAXIMUM_LENGTH
@@ -1251,8 +1283,8 @@ describe t1;
Field Type Null Key Default Extra
f1 int(11) YES MUL NULL
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 f1 1 f1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 f1 1 f1 A NULL NULL NULL YES BTREE NO
drop table t1;
create table t1(f1 binary(32), f2 varbinary(64));
select character_maximum_length, character_octet_length
@@ -1266,7 +1298,7 @@ INSERT INTO t1 SET f1 = 1, f2 = 'Schoenenbourg', f3 = 1;
CREATE FUNCTION func2() RETURNS BIGINT RETURN 1;
CREATE FUNCTION func1() RETURNS BIGINT
BEGIN
-RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS);
+RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA <> 'sys');
END//
CREATE VIEW v1 AS SELECT 1 FROM t1
WHERE f3 = (SELECT func2 ());
@@ -1423,9 +1455,109 @@ create table t2 (f1 int, f2 int);
create view v2 as select f1+1 as a, f2 as b from t2;
select table_name, is_updatable from information_schema.views order by table_name;
table_name is_updatable
+host_summary NO
+host_summary_by_file_io NO
+host_summary_by_file_io_type YES
+host_summary_by_stages YES
+host_summary_by_statement_latency NO
+host_summary_by_statement_type YES
+innodb_buffer_stats_by_schema NO
+innodb_buffer_stats_by_table NO
+innodb_lock_waits NO
+io_by_thread_by_latency NO
+io_global_by_file_by_bytes YES
+io_global_by_file_by_latency YES
+io_global_by_wait_by_bytes YES
+io_global_by_wait_by_latency YES
+latest_file_io YES
+memory_by_host_by_current_bytes NO
+memory_by_thread_by_current_bytes NO
+memory_by_user_by_current_bytes NO
+memory_global_by_current_bytes YES
+memory_global_total NO
+metrics NO
+processlist NO
+ps_check_lost_instrumentation YES
+schema_auto_increment_columns NO
+schema_index_statistics YES
+schema_object_overview NO
+schema_redundant_indexes NO
+schema_tables_with_full_table_scans YES
+schema_table_lock_waits NO
+schema_table_statistics NO
+schema_table_statistics_with_buffer NO
+schema_unused_indexes YES
+session YES
+session_ssl_status YES
+statements_with_errors_or_warnings YES
+statements_with_full_table_scans YES
+statements_with_runtimes_in_95th_percentile YES
+statements_with_sorting YES
+statements_with_temp_tables YES
+statement_analysis YES
user YES
+user_summary NO
+user_summary_by_file_io NO
+user_summary_by_file_io_type YES
+user_summary_by_stages YES
+user_summary_by_statement_latency NO
+user_summary_by_statement_type YES
v1 NO
v2 YES
+version NO
+waits_by_host_by_latency YES
+waits_by_user_by_latency YES
+waits_global_by_latency YES
+wait_classes_global_by_avg_latency NO
+wait_classes_global_by_latency NO
+x$host_summary NO
+x$host_summary_by_file_io NO
+x$host_summary_by_file_io_type YES
+x$host_summary_by_stages YES
+x$host_summary_by_statement_latency NO
+x$host_summary_by_statement_type YES
+x$innodb_buffer_stats_by_schema NO
+x$innodb_buffer_stats_by_table NO
+x$innodb_lock_waits NO
+x$io_by_thread_by_latency NO
+x$io_global_by_file_by_bytes YES
+x$io_global_by_file_by_latency YES
+x$io_global_by_wait_by_bytes YES
+x$io_global_by_wait_by_latency YES
+x$latest_file_io YES
+x$memory_by_host_by_current_bytes NO
+x$memory_by_thread_by_current_bytes NO
+x$memory_by_user_by_current_bytes NO
+x$memory_global_by_current_bytes YES
+x$memory_global_total NO
+x$processlist NO
+x$ps_digest_95th_percentile_by_avg_us NO
+x$ps_digest_avg_latency_distribution NO
+x$ps_schema_table_statistics_io NO
+x$schema_flattened_keys NO
+x$schema_index_statistics YES
+x$schema_tables_with_full_table_scans YES
+x$schema_table_lock_waits NO
+x$schema_table_statistics NO
+x$schema_table_statistics_with_buffer NO
+x$session YES
+x$statements_with_errors_or_warnings YES
+x$statements_with_full_table_scans YES
+x$statements_with_runtimes_in_95th_percentile YES
+x$statements_with_sorting YES
+x$statements_with_temp_tables YES
+x$statement_analysis YES
+x$user_summary NO
+x$user_summary_by_file_io NO
+x$user_summary_by_file_io_type YES
+x$user_summary_by_stages YES
+x$user_summary_by_statement_latency NO
+x$user_summary_by_statement_type YES
+x$waits_by_host_by_latency YES
+x$waits_by_user_by_latency YES
+x$waits_global_by_latency YES
+x$wait_classes_global_by_avg_latency NO
+x$wait_classes_global_by_latency NO
delete from v1;
drop view v1,v2;
drop table t1,t2;
@@ -1614,7 +1746,7 @@ information_schema
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
TABLE_COLLATION
-utf8_bin
+utf8mb3_bin
select * from information_schema.columns where table_schema = NULL;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT IS_GENERATED GENERATION_EXPRESSION
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
@@ -1634,9 +1766,9 @@ CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG U
select * from information_schema.schemata where schema_name = NULL;
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH SCHEMA_COMMENT
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
select * from information_schema.tables where table_schema = NULL;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
select * from information_schema.tables where table_catalog = NULL;
@@ -2373,16 +2505,16 @@ drop table t1;
SET SQL_MODE= 'EMPTY_STRING_IS_NULL';
CREATE OR REPLACE TABLE t1 AS SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 1 = 0;
SHOW returned: CREATE TABLE `t1` (
- `TABLE_NAME` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `TABLE_NAME` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
CREATE TABLE `t1` (
- `TABLE_NAME` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `TABLE_NAME` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `TABLE_NAME` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `TABLE_NAME` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
SET SQL_MODE=DEFAULT;
diff --git a/mysql-test/main/information_schema.test b/mysql-test/main/information_schema.test
index b8f973195c7..7ef536c2a54 100644
--- a/mysql-test/main/information_schema.test
+++ b/mysql-test/main/information_schema.test
@@ -1,5 +1,6 @@
# This test uses grants, which can't get tested for embedded server
-- source include/not_embedded.inc
+-- source include/have_perfschema.inc
# check that CSV engine was compiled in, as the result of the test depends
# on the presence of the log tables (which are CSV-based).
@@ -187,19 +188,19 @@ drop view v1;
connect (user1,localhost,mysqltest_1,,);
connection user1;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
--error ER_SP_DOES_NOT_EXIST
show create function sub1;
connection user3;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
connection default;
grant all privileges on test.* to mysqltest_1@localhost;
connect (user2,localhost,mysqltest_1,,);
connection user2;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
create function sub2(i int) returns int
return i+1;
-select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
+select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES WHERE ROUTINE_SCHEMA <> 'sys';
show create procedure sel2;
show create function sub1;
show create function sub2;
@@ -233,7 +234,7 @@ where COLLATION_NAME like "latin1%";
select * from v4;
show keys from v4;
--sorted_result
-select * from information_schema.views where TABLE_NAME like "v%";
+select * from information_schema.views where TABLE_NAME like "v%" AND TABLE_SCHEMA <> 'sys';
drop view v0, v1, v2, v3, v4;
#
@@ -285,7 +286,7 @@ create view v1 (c) as select a from t1 with check option;
create view v2 (c) as select a from t1 WITH LOCAL CHECK OPTION;
create view v3 (c) as select a from t1 WITH CASCADED CHECK OPTION;
--sorted_result
-select * from information_schema.views;
+select * from information_schema.views where table_schema <> 'sys';
grant select (a) on test.t1 to joe@localhost with grant option;
select * from INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
select * from INFORMATION_SCHEMA.TABLE_PRIVILEGES;
@@ -671,7 +672,7 @@ drop procedure if exists p2;
create procedure p1 () modifies sql data set @a = 5;
create procedure p2 () set @a = 5;
select sql_data_access from information_schema.routines
-where specific_name like 'p%';
+where specific_name like 'p%' and routine_schema = 'test';
drop procedure p1;
drop procedure p2;
@@ -835,7 +836,7 @@ CREATE FUNCTION func2() RETURNS BIGINT RETURN 1;
delimiter //;
CREATE FUNCTION func1() RETURNS BIGINT
BEGIN
- RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS);
+ RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA <> 'sys');
END//
delimiter ;//
diff --git a/mysql-test/main/information_schema_all_engines-master.opt b/mysql-test/main/information_schema_all_engines-master.opt
index 7ba5aa5b8b3..fc12532351b 100644
--- a/mysql-test/main/information_schema_all_engines-master.opt
+++ b/mysql-test/main/information_schema_all_engines-master.opt
@@ -13,5 +13,4 @@
--loose-innodb-sys-foreign-cols
--loose-innodb-sys-tables
--loose-innodb-sys-tablestats
---loose-innodb-mutexes
--loose-innodb-tablespaces-encryption
diff --git a/mysql-test/main/information_schema_all_engines.result b/mysql-test/main/information_schema_all_engines.result
index 2e377b254e4..23a853e363c 100644
--- a/mysql-test/main/information_schema_all_engines.result
+++ b/mysql-test/main/information_schema_all_engines.result
@@ -29,7 +29,6 @@ INNODB_CMP_RESET
INNODB_LOCKS
INNODB_LOCK_WAITS
INNODB_METRICS
-INNODB_MUTEXES
INNODB_SYS_COLUMNS
INNODB_SYS_FIELDS
INNODB_SYS_FOREIGN
@@ -111,7 +110,6 @@ INNODB_CMP_RESET page_size
INNODB_LOCKS lock_id
INNODB_LOCK_WAITS requesting_trx_id
INNODB_METRICS NAME
-INNODB_MUTEXES NAME
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_FOREIGN ID
@@ -193,7 +191,6 @@ INNODB_CMP_RESET page_size
INNODB_LOCKS lock_id
INNODB_LOCK_WAITS requesting_trx_id
INNODB_METRICS NAME
-INNODB_MUTEXES NAME
INNODB_SYS_COLUMNS TABLE_ID
INNODB_SYS_FIELDS INDEX_ID
INNODB_SYS_FOREIGN ID
@@ -280,7 +277,6 @@ INNODB_CMP_RESET information_schema.INNODB_CMP_RESET 1
INNODB_LOCKS information_schema.INNODB_LOCKS 1
INNODB_LOCK_WAITS information_schema.INNODB_LOCK_WAITS 1
INNODB_METRICS information_schema.INNODB_METRICS 1
-INNODB_MUTEXES information_schema.INNODB_MUTEXES 1
INNODB_SYS_COLUMNS information_schema.INNODB_SYS_COLUMNS 1
INNODB_SYS_FIELDS information_schema.INNODB_SYS_FIELDS 1
INNODB_SYS_FOREIGN information_schema.INNODB_SYS_FOREIGN 1
@@ -350,7 +346,6 @@ Database: information_schema
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_METRICS |
-| INNODB_MUTEXES |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
@@ -422,7 +417,6 @@ Database: INFORMATION_SCHEMA
| INNODB_LOCKS |
| INNODB_LOCK_WAITS |
| INNODB_METRICS |
-| INNODB_MUTEXES |
| INNODB_SYS_COLUMNS |
| INNODB_SYS_FIELDS |
| INNODB_SYS_FOREIGN |
@@ -469,5 +463,5 @@ Wildcard: inf_rmation_schema
| information_schema |
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') GROUP BY TABLE_SCHEMA;
table_schema count(*)
-information_schema 67
+information_schema 66
mysql 31
diff --git a/mysql-test/main/information_schema_db.test b/mysql-test/main/information_schema_db.test
index 61c21ed0bab..e60557a9526 100644
--- a/mysql-test/main/information_schema_db.test
+++ b/mysql-test/main/information_schema_db.test
@@ -36,12 +36,14 @@ grant all privileges on `inf%`.* to 'mysqltest_1'@'localhost';
grant all privileges on `mbase`.* to 'mysqltest_1'@'localhost';
create table t1 (f1 int);
delimiter |;
+--enable_prepare_warnings
create function func1(curr_int int) returns int
begin
declare ret_val int;
select max(f1) from t1 into ret_val;
return ret_val;
end|
+--disable_prepare_warnings
delimiter ;|
create view v1 as select f1 from t1 where f1 = func1(f1);
create function func2() returns int return 1;
diff --git a/mysql-test/main/information_schema_parameters.result b/mysql-test/main/information_schema_parameters.result
index ff9e05e77a4..7c73c312bd7 100644
--- a/mysql-test/main/information_schema_parameters.result
+++ b/mysql-test/main/information_schema_parameters.result
@@ -19,7 +19,7 @@ PARAMETERS CREATE TEMPORARY TABLE `PARAMETERS` (
`COLLATION_NAME` varchar(64),
`DTD_IDENTIFIER` longtext NOT NULL,
`ROUTINE_TYPE` varchar(9) NOT NULL
-) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT * FROM information_schema.columns
WHERE table_schema = 'information_schema'
AND table_name = 'parameters'
@@ -37,8 +37,8 @@ CHARACTER_OCTET_LENGTH 1536
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(512)
COLUMN_KEY
EXTRA
@@ -59,8 +59,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -81,8 +81,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -125,8 +125,8 @@ CHARACTER_OCTET_LENGTH 15
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(5)
COLUMN_KEY
EXTRA
@@ -147,8 +147,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -169,8 +169,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -301,8 +301,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -323,8 +323,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -345,8 +345,8 @@ CHARACTER_OCTET_LENGTH 4294967295
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE longtext
COLUMN_KEY
EXTRA
@@ -367,8 +367,8 @@ CHARACTER_OCTET_LENGTH 27
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(9)
COLUMN_KEY
EXTRA
@@ -521,8 +521,8 @@ RETURN CONCAT('XYZ, ' ,s);
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS
WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func5';
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ORDINAL_POSITION PARAMETER_MODE PARAMETER_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_TYPE
-def i_s_parameters_test test_func5 0 NULL NULL varchar 30 90 NULL NULL NULL utf8 utf8_general_ci varchar(30) FUNCTION
-def i_s_parameters_test test_func5 1 IN s char 20 60 NULL NULL NULL utf8 utf8_general_ci char(20) FUNCTION
+def i_s_parameters_test test_func5 0 NULL NULL varchar 30 90 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(30) FUNCTION
+def i_s_parameters_test test_func5 1 IN s char 20 60 NULL NULL NULL utf8mb3 utf8mb3_general_ci char(20) FUNCTION
DROP DATABASE i_s_parameters_test;
USE test;
#
diff --git a/mysql-test/main/information_schema_routines.result b/mysql-test/main/information_schema_routines.result
index ddb5ea00024..90768765883 100644
--- a/mysql-test/main/information_schema_routines.result
+++ b/mysql-test/main/information_schema_routines.result
@@ -32,11 +32,11 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
`LAST_ALTERED` datetime NOT NULL,
`SQL_MODE` varchar(8192) NOT NULL,
`ROUTINE_COMMENT` longtext NOT NULL,
- `DEFINER` varchar(189) NOT NULL,
+ `DEFINER` varchar(384) NOT NULL,
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL,
`COLLATION_CONNECTION` varchar(32) NOT NULL,
`DATABASE_COLLATION` varchar(32) NOT NULL
-) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SELECT * FROM information_schema.columns
WHERE table_schema = 'information_schema'
AND table_name = 'routines'
@@ -54,8 +54,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -76,8 +76,8 @@ CHARACTER_OCTET_LENGTH 1536
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(512)
COLUMN_KEY
EXTRA
@@ -98,8 +98,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -120,8 +120,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -142,8 +142,8 @@ CHARACTER_OCTET_LENGTH 39
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(13)
COLUMN_KEY
EXTRA
@@ -164,8 +164,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -296,8 +296,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -318,8 +318,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -340,8 +340,8 @@ CHARACTER_OCTET_LENGTH 4294967295
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE longtext
COLUMN_KEY
EXTRA
@@ -362,8 +362,8 @@ CHARACTER_OCTET_LENGTH 24
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(8)
COLUMN_KEY
EXTRA
@@ -384,8 +384,8 @@ CHARACTER_OCTET_LENGTH 4294967295
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE longtext
COLUMN_KEY
EXTRA
@@ -406,8 +406,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -428,8 +428,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -450,8 +450,8 @@ CHARACTER_OCTET_LENGTH 24
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(8)
COLUMN_KEY
EXTRA
@@ -472,8 +472,8 @@ CHARACTER_OCTET_LENGTH 9
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(3)
COLUMN_KEY
EXTRA
@@ -494,8 +494,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -516,8 +516,8 @@ CHARACTER_OCTET_LENGTH 192
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(64)
COLUMN_KEY
EXTRA
@@ -538,8 +538,8 @@ CHARACTER_OCTET_LENGTH 21
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(7)
COLUMN_KEY
EXTRA
@@ -604,8 +604,8 @@ CHARACTER_OCTET_LENGTH 24576
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(8192)
COLUMN_KEY
EXTRA
@@ -626,8 +626,8 @@ CHARACTER_OCTET_LENGTH 4294967295
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE longtext
COLUMN_KEY
EXTRA
@@ -643,14 +643,14 @@ ORDINAL_POSITION 28
COLUMN_DEFAULT NULL
IS_NULLABLE NO
DATA_TYPE varchar
-CHARACTER_MAXIMUM_LENGTH 189
-CHARACTER_OCTET_LENGTH 567
+CHARACTER_MAXIMUM_LENGTH 384
+CHARACTER_OCTET_LENGTH 1152
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
-COLUMN_TYPE varchar(189)
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
+COLUMN_TYPE varchar(384)
COLUMN_KEY
EXTRA
PRIVILEGES #
@@ -670,8 +670,8 @@ CHARACTER_OCTET_LENGTH 96
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(32)
COLUMN_KEY
EXTRA
@@ -692,8 +692,8 @@ CHARACTER_OCTET_LENGTH 96
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(32)
COLUMN_KEY
EXTRA
@@ -714,8 +714,8 @@ CHARACTER_OCTET_LENGTH 96
NUMERIC_PRECISION NULL
NUMERIC_SCALE NULL
DATETIME_PRECISION NULL
-CHARACTER_SET_NAME utf8
-COLLATION_NAME utf8_general_ci
+CHARACTER_SET_NAME utf8mb3
+COLLATION_NAME utf8mb3_general_ci
COLUMN_TYPE varchar(32)
COLUMN_KEY
EXTRA
@@ -752,7 +752,7 @@ CREATED datetime NO NULL
LAST_ALTERED datetime NO NULL
SQL_MODE varchar(8192) NO NULL
ROUTINE_COMMENT longtext NO NULL
-DEFINER varchar(189) NO NULL
+DEFINER varchar(384) NO NULL
CHARACTER_SET_CLIENT varchar(32) NO NULL
COLLATION_CONNECTION varchar(32) NO NULL
DATABASE_COLLATION varchar(32) NO NULL
@@ -849,5 +849,5 @@ RETURN CONCAT('XYZ, ' ,s);
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'i_s_routines_test' AND ROUTINE_NAME = 'test_func5';
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
-test_func5 def i_s_routines_test test_func5 FUNCTION varchar 30 90 NULL NULL NULL utf8 utf8_general_ci varchar(30) SQL RETURN CONCAT('XYZ, ' ,s) NULL NULL SQL NO CONTAINS SQL NULL DEFINER <created> <modified> root@localhost latin1 latin1_swedish_ci utf8_general_ci
+test_func5 def i_s_routines_test test_func5 FUNCTION varchar 30 90 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(30) SQL RETURN CONCAT('XYZ, ' ,s) NULL NULL SQL NO CONTAINS SQL NULL DEFINER <created> <modified> root@localhost latin1 latin1_swedish_ci utf8mb3_general_ci
DROP DATABASE i_s_routines_test;
diff --git a/mysql-test/main/innodb_ext_key.result b/mysql-test/main/innodb_ext_key.result
index 0d3e27e5bf0..5b99fa4e30b 100644
--- a/mysql-test/main/innodb_ext_key.result
+++ b/mysql-test/main/innodb_ext_key.result
@@ -602,6 +602,17 @@ INSERT INTO t3 VALUES
(89,'text-8008',''),(90,'text-9008',''),(91,'text-9',''),(92,'text-1009',''),
(93,'text-2009',''),(94,'text-3009',''),(95,'text-4009',''),(96,'text-5009',''),
(97,'text-6009',''),(98,'text-7009',''),(99,'text-8009',''),(100,'text-9009','');
+ANALYZE TABLE t1,t2,t3;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze Warning Engine-independent statistics are not collected for column 'page_restrictions'
+test.t1 analyze status OK
+test.t2 analyze status Engine-independent statistics collected
+test.t2 analyze status OK
+test.t3 analyze status Engine-independent statistics collected
+test.t3 analyze Warning Engine-independent statistics are not collected for column 'old_text'
+test.t3 analyze Warning Engine-independent statistics are not collected for column 'old_flags'
+test.t3 analyze status OK
EXPLAIN
SELECT * FROM t1, t2 IGNORE INDEX (PRIMARY), t3
WHERE page_id=rev_page AND rev_text_id=old_id AND page_namespace=4 AND page_title='Sandbox'
diff --git a/mysql-test/main/innodb_ext_key.test b/mysql-test/main/innodb_ext_key.test
index e2c4bbc026e..41a55232001 100644
--- a/mysql-test/main/innodb_ext_key.test
+++ b/mysql-test/main/innodb_ext_key.test
@@ -461,6 +461,7 @@ INSERT INTO t3 VALUES
(89,'text-8008',''),(90,'text-9008',''),(91,'text-9',''),(92,'text-1009',''),
(93,'text-2009',''),(94,'text-3009',''),(95,'text-4009',''),(96,'text-5009',''),
(97,'text-6009',''),(98,'text-7009',''),(99,'text-8009',''),(100,'text-9009','');
+ANALYZE TABLE t1,t2,t3;
EXPLAIN
diff --git a/mysql-test/main/innodb_mysql_lock.result b/mysql-test/main/innodb_mysql_lock.result
index 25cf2882cd0..6ca332018ca 100644
--- a/mysql-test/main/innodb_mysql_lock.result
+++ b/mysql-test/main/innodb_mysql_lock.result
@@ -12,6 +12,8 @@ connect con3,localhost,root,,;
connection con1;
set @@autocommit=0;
CREATE TABLE t1(s1 INT UNIQUE) ENGINE=innodb;
+INSERT INTO t1 VALUES (100);
+COMMIT;
INSERT INTO t1 VALUES (1);
connection con2;
set @@autocommit=0;
diff --git a/mysql-test/main/innodb_mysql_lock.test b/mysql-test/main/innodb_mysql_lock.test
index 6e746468dba..5ee688b1d6e 100644
--- a/mysql-test/main/innodb_mysql_lock.test
+++ b/mysql-test/main/innodb_mysql_lock.test
@@ -25,6 +25,11 @@ connect (con3,localhost,root,,);
connection con1;
set @@autocommit=0;
CREATE TABLE t1(s1 INT UNIQUE) ENGINE=innodb;
+# MDEV-515 takes X-lock on the table for the first insert.
+# So concurrent DML won't happen on the table
+INSERT INTO t1 VALUES (100);
+COMMIT;
+
INSERT INTO t1 VALUES (1);
connection con2;
diff --git a/mysql-test/main/innodb_mysql_lock2.test b/mysql-test/main/innodb_mysql_lock2.test
index b983fd8dc7a..09298a900b1 100644
--- a/mysql-test/main/innodb_mysql_lock2.test
+++ b/mysql-test/main/innodb_mysql_lock2.test
@@ -71,6 +71,7 @@ insert into t5 values (1);
create view v1 as select i from t1;
create view v2 as select j from t2 where j in (select i from t1);
create procedure p1(k int) insert into t2 values (k);
+--enable_prepare_warnings
delimiter |;
create function f1() returns int
begin
@@ -192,6 +193,7 @@ begin
set new.l= j + 1;
end|
delimiter ;|
+--disable_prepare_warnings
--echo #
--echo # Set common variables to be used by scripts called below.
diff --git a/mysql-test/main/innodb_utf8.test b/mysql-test/main/innodb_utf8.test
index e52019588b0..b6ea12b02bb 100644
--- a/mysql-test/main/innodb_utf8.test
+++ b/mysql-test/main/innodb_utf8.test
@@ -3,7 +3,7 @@
#
--source include/have_innodb.inc
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
# Setup
diff --git a/mysql-test/main/invisible_field.test b/mysql-test/main/invisible_field.test
index 558ca7aa3a2..7fd22704fcb 100644
--- a/mysql-test/main/invisible_field.test
+++ b/mysql-test/main/invisible_field.test
@@ -251,6 +251,7 @@ DROP TABLE t1;
create or replace table t1 (a int, b int invisible);
insert into t1 values (1),(2);
+--enable_prepare_warnings
select * from t1 into outfile 'f';
load data infile 'f' into table t1;
select a,b from t1;
@@ -277,6 +278,7 @@ drop table t1;
--echo #
create table t1 (a int, b int invisible);
insert delayed into t1 values (1);
+--disable_prepare_warnings
# cleanup
drop table t1;
diff --git a/mysql-test/main/invisible_field_debug.result b/mysql-test/main/invisible_field_debug.result
index d73a823d708..344a0b860fc 100644
--- a/mysql-test/main/invisible_field_debug.result
+++ b/mysql-test/main/invisible_field_debug.result
@@ -249,10 +249,10 @@ b
alter table t1 add index(a);
alter table t1 add index(a,b);
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
-t1 1 a_2 1 a A NULL NULL NULL YES BTREE
-t1 1 a_2 2 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_2 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_2 2 b A NULL NULL NULL YES BTREE NO
drop table t1;
set debug_dbug= "+d,test_pseudo_invisible";
Create table t1( a int default(99) invisible, b int);
@@ -280,7 +280,7 @@ ERROR 42000: Key column 'invisible' doesn't exist in table
alter table t1 add index(b,invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
drop table t1;
set debug_dbug= "+d,test_completely_invisible";
Create table t1( a int default(99) invisible, b int);
@@ -308,17 +308,17 @@ ERROR 42000: Key column 'invisible' doesn't exist in table
alter table t1 add index(b,invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
drop table t1;
set debug_dbug= "+d,test_completely_invisible,test_invisible_index";
Create table t1( a int default(99) , b int,c int, index(b));
set debug_dbug=@old_debug;
Show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
select * from INFORMATION_SCHEMA.STATISTICS where TABLE_SCHEMA ='test' and table_name='t1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test b 1 b A NULL NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 1 test b 1 b A NULL NULL NULL YES BTREE NO
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -359,8 +359,8 @@ invisible a b
9 7 7
set debug_dbug=@old_debug;
Show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
create index a1 on t1(invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
set debug_dbug= "+d,test_completely_invisible,test_invisible_index";
@@ -374,10 +374,10 @@ explain select * from t1 where invisible =9;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL invisible_2 NULL NULL NULL 7 Using where
show indexes in t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
-t1 1 invisible 1 c A NULL NULL NULL YES BTREE
-t1 1 invisible_2 1 invisible A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 invisible 1 c A NULL NULL NULL YES BTREE NO
+t1 1 invisible_2 1 invisible A NULL NULL NULL YES BTREE NO
drop table t1;
set @old_debug= @@debug_dbug;
CREATE TABLE t1 (i INT );
diff --git a/mysql-test/main/join.result b/mysql-test/main/join.result
index 859bc588ed4..942ee96fc32 100644
--- a/mysql-test/main/join.result
+++ b/mysql-test/main/join.result
@@ -757,8 +757,8 @@ statistics.TABLE_NAME, statistics.COLUMN_NAME, statistics.TABLE_CATALOG, statist
columns.TABLE_CATALOG, columns.TABLE_SCHEMA, columns.COLUMN_DEFAULT, columns.IS_NULLABLE, columns.DATA_TYPE, columns.CHARACTER_MAXIMUM_LENGTH, columns.CHARACTER_OCTET_LENGTH, columns.NUMERIC_PRECISION, columns.NUMERIC_SCALE, columns.CHARACTER_SET_NAME, columns.COLLATION_NAME, columns.COLUMN_TYPE, columns.COLUMN_KEY, columns.EXTRA, columns.COLUMN_COMMENT
from information_schema.statistics join information_schema.columns using(table_name,column_name) where table_name='global_priv';
TABLE_NAME COLUMN_NAME TABLE_CATALOG TABLE_SCHEMA NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLLATION SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT TABLE_CATALOG TABLE_SCHEMA COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA COLUMN_COMMENT
-global_priv Host def mysql 0 mysql PRIMARY 1 A NULL NULL BTREE def mysql '' NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
-global_priv User def mysql 0 mysql PRIMARY 2 A NULL NULL BTREE def mysql '' NO char 80 240 NULL NULL utf8 utf8_bin char(80) PRI
+global_priv Host def mysql 0 mysql PRIMARY 1 A NULL NULL BTREE def mysql '' NO char 255 765 NULL NULL utf8mb3 utf8mb3_bin char(255) PRI
+global_priv User def mysql 0 mysql PRIMARY 2 A NULL NULL BTREE def mysql '' NO char 128 384 NULL NULL utf8mb3 utf8mb3_bin char(128) PRI
Warnings:
Warning 1286 Unknown storage engine 'InnoDB'
Warning 1286 Unknown storage engine 'InnoDB'
@@ -3340,9 +3340,9 @@ test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
set myisam_stats_method=@tmp1;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 pk A 1010 NULL NULL BTREE
-t1 0 a 1 a A 1010 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 pk A 1010 NULL NULL BTREE NO
+t1 0 a 1 a A 1010 NULL NULL YES BTREE NO
# t1 must use eq_ref(t1.a=t0.a) and rows must be 1 (and not 45):
explain select * from t0,t1 where t0.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
diff --git a/mysql-test/main/join_cache.result b/mysql-test/main/join_cache.result
index f2893f27e8e..3ab6c1cf310 100644
--- a/mysql-test/main/join_cache.result
+++ b/mysql-test/main/join_cache.result
@@ -5993,14 +5993,14 @@ create table t3 (c3 int);
insert into t1 values (1), (2);
insert into t2 values (1), (2);
insert into t3 values (2);
+set @counter=0;
explain
select count(*) from t1 straight_join t2
where c1 = c2-0 and c2 <= (select max(c3) from t3 where c3 = 2 and @counter:=@counter+1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
-2 UNCACHEABLE SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
-set @counter=0;
+2 UNCACHEABLE SUBQUERY t3 system NULL NULL NULL NULL 1
select count(*) from t1 straight_join t2
where c1 = c2-0 and c2 <= (select max(c3) from t3 where c3 = 2 and @counter:=@counter+1);
count(*)
diff --git a/mysql-test/main/join_cache.test b/mysql-test/main/join_cache.test
index 07ac0b760cf..f09f28c273a 100644
--- a/mysql-test/main/join_cache.test
+++ b/mysql-test/main/join_cache.test
@@ -4029,12 +4029,12 @@ insert into t1 values (1), (2);
insert into t2 values (1), (2);
insert into t3 values (2);
+set @counter=0;
+
explain
select count(*) from t1 straight_join t2
where c1 = c2-0 and c2 <= (select max(c3) from t3 where c3 = 2 and @counter:=@counter+1);
-set @counter=0;
-
select count(*) from t1 straight_join t2
where c1 = c2-0 and c2 <= (select max(c3) from t3 where c3 = 2 and @counter:=@counter+1);
diff --git a/mysql-test/main/join_nested.result b/mysql-test/main/join_nested.result
index 816fe4b5e35..4db15f2f5a8 100644
--- a/mysql-test/main/join_nested.result
+++ b/mysql-test/main/join_nested.result
@@ -916,11 +916,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
-1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
+1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
Warnings:
-Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t3`.`b` = `test`.`t4`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
CREATE INDEX idx_b ON t4(b);
@@ -1476,9 +1476,9 @@ join t5 on t5.a=t3.b) on t3.a=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL X
1 SIMPLE t3 ref a a 5 test.t2.b X Using where
-1 SIMPLE t5 ref a a 5 test.t3.b X
-1 SIMPLE t4 ref a a 5 test.t5.a X Using where
+1 SIMPLE t4 ref a a 5 test.t3.b X Using where
1 SIMPLE t6 ref a a 5 test.t4.b X
+1 SIMPLE t5 ref a a 5 test.t3.b X
drop table t0, t1, t2, t3, t4, t5, t6, t7;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
diff --git a/mysql-test/main/join_nested_jcl6.result b/mysql-test/main/join_nested_jcl6.result
index 6ac2a291ed1..26081382368 100644
--- a/mysql-test/main/join_nested_jcl6.result
+++ b/mysql-test/main/join_nested_jcl6.result
@@ -925,11 +925,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join)
-1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
+1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
Warnings:
-Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t3`.`b` = `test`.`t4`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t9`.`b` = `test`.`t8`.`b` or `test`.`t8`.`c` is null)
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
CREATE INDEX idx_b ON t4(b);
@@ -1027,8 +1027,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join)
-1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
+1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
Warnings:
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t8`.`a` >= 0 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null)
@@ -1485,9 +1485,9 @@ join t5 on t5.a=t3.b) on t3.a=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL X
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
-1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
-1 SIMPLE t4 ref a a 5 test.t5.a X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
+1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
+1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
drop table t0, t1, t2, t3, t4, t5, t6, t7;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
diff --git a/mysql-test/main/join_outer_innodb.result b/mysql-test/main/join_outer_innodb.result
index 09a37a29702..6f87048cdc1 100644
--- a/mysql-test/main/join_outer_innodb.result
+++ b/mysql-test/main/join_outer_innodb.result
@@ -1,3 +1,5 @@
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
INDEX (name)) ENGINE=InnoDB;
CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
@@ -515,3 +517,4 @@ UPDATE t1 LEFT JOIN t2 ON t1.c1 = t2.c2 AND t2.c1 = 3 SET t1.c3 = RAND()*10;
COMMIT;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
DROP TABLE t1,t2;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/join_outer_innodb.test b/mysql-test/main/join_outer_innodb.test
index 6b332f3d155..d1a8b0c4ab4 100644
--- a/mysql-test/main/join_outer_innodb.test
+++ b/mysql-test/main/join_outer_innodb.test
@@ -4,6 +4,8 @@
--source include/have_innodb.inc
--source include/default_optimizer_switch.inc
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
#
# Test for bug #17164: ORed FALSE blocked conversion of outer join into join
@@ -391,3 +393,4 @@ COMMIT;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
DROP TABLE t1,t2;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/json_debug_nonembedded.result b/mysql-test/main/json_debug_nonembedded.result
index fdd6626cbec..6af88191d97 100644
--- a/mysql-test/main/json_debug_nonembedded.result
+++ b/mysql-test/main/json_debug_nonembedded.result
@@ -1,28 +1,13 @@
#
-# Beginning of 10.3 test
+# Beginning of 10.6 test
+#
# MDEV-28762: recursive call of some json functions without stack control
#
-SET @saved_dbug = @@debug_dbug;
-SET debug_dbug='+d,json_check_min_stack_requirement';
-SET @json1= '{"key1":{"key1":"val1"}}';
-SET @json2= '{"key1":{"key1":"val1"}}';
-SELECT JSON_CONTAINS(@json1, @json2);
-ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SET debug_dbug='+d,temp';
-SET @json1= '[1, 2, 3, 4]';
-SET @json2= '[5, 6, 7, 8]';
-SELECT JSON_MERGE(@json1, @json2);
-ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SELECT JSON_MERGE_PATCH(@json1, @json2);
-ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SELECT JSON_CONTAINS_PATH('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[2]");
-ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SET @j = '["abc", [{"k": "10"}, "def"], {"x":"abc"}, {"y":"bcd"}]';
-SELECT JSON_SEARCH(@j, 'all', 'abc', NULL, '$[2]');
-ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SELECT JSON_EXTRACT('{"key1":"asd", "key2":[2,3]}', "$.key1", "$.key2");
+SET @saved_debug= @@debug_dbug;
+SET @@debug_dbug='+d,json_check_min_stack_requirement';
+SELECT * from JSON_TABLE('[{"a": 1, "b": [11,111]}, {"a": 2, "b": [22,222]}]', '$[*]' COLUMNS( a INT PATH '$.a')) as tt;
ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed. Consider increasing the thread_stack system variable.
-SET @@debug_dbug= @saved_dbug;
+SET @@debug_dbug= @saved_debug;
#
-# End of 10.3 test
+# End of 10.6 tests
#
diff --git a/mysql-test/main/json_debug_nonembedded.test b/mysql-test/main/json_debug_nonembedded.test
index 021abd8c602..cecb9f1f6ed 100644
--- a/mysql-test/main/json_debug_nonembedded.test
+++ b/mysql-test/main/json_debug_nonembedded.test
@@ -2,46 +2,21 @@
--source include/have_debug.inc
--echo #
---echo # Beginning of 10.3 test
+--echo # Beginning of 10.6 test
+--echo #
--echo # MDEV-28762: recursive call of some json functions without stack control
--echo #
-SET @saved_dbug = @@debug_dbug;
-SET debug_dbug='+d,json_check_min_stack_requirement';
-
-SET @json1= '{"key1":{"key1":"val1"}}';
-SET @json2= '{"key1":{"key1":"val1"}}';
-
---replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_CONTAINS(@json1, @json2);
-
-SET debug_dbug='+d,temp';
-SET @json1= '[1, 2, 3, 4]';
-SET @json2= '[5, 6, 7, 8]';
---replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_MERGE(@json1, @json2);
-
---replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_MERGE_PATCH(@json1, @json2);
-
---replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_CONTAINS_PATH('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[2]");
+SET @saved_debug= @@debug_dbug;
-SET @j = '["abc", [{"k": "10"}, "def"], {"x":"abc"}, {"y":"bcd"}]';--replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
---error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_SEARCH(@j, 'all', 'abc', NULL, '$[2]');
+SET @@debug_dbug='+d,json_check_min_stack_requirement';
--replace_regex /overrun: [0-9]* bytes used of a [0-9]* byte stack, and [0-9]* bytes needed/overrun: 'used bytes' used of a 'available' byte stack, and 'X' bytes needed/
--error ER_STACK_OVERRUN_NEED_MORE
-SELECT JSON_EXTRACT('{"key1":"asd", "key2":[2,3]}', "$.key1", "$.key2");
+SELECT * from JSON_TABLE('[{"a": 1, "b": [11,111]}, {"a": 2, "b": [22,222]}]', '$[*]' COLUMNS( a INT PATH '$.a')) as tt;
-SET @@debug_dbug= @saved_dbug;
+SET @@debug_dbug= @saved_debug;
--echo #
---echo # End of 10.3 test
+--echo # End of 10.6 tests
--echo #
diff --git a/mysql-test/main/key.result b/mysql-test/main/key.result
index 0a8dde3b58a..e94a7309964 100644
--- a/mysql-test/main/key.result
+++ b/mysql-test/main/key.result
@@ -148,12 +148,12 @@ a 2
drop table t1;
create table t1 (a int not null unique, b int unique, c int, d int not null primary key, key(c), e int not null unique);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 d A 0 NULL NULL BTREE
-t1 0 a 1 a A 0 NULL NULL BTREE
-t1 0 e 1 e A 0 NULL NULL BTREE
-t1 0 b 1 b A NULL NULL NULL YES BTREE
-t1 1 c 1 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 d A 0 NULL NULL BTREE NO
+t1 0 a 1 a A 0 NULL NULL BTREE NO
+t1 0 e 1 e A 0 NULL NULL BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 c 1 c A NULL NULL NULL YES BTREE NO
drop table t1;
CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
UNIQUE (c,i));
@@ -242,8 +242,8 @@ create table t1 (c varchar(30) character set utf8, t text character set utf8, un
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `t` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `t` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
UNIQUE KEY `c` (`c`(2)),
UNIQUE KEY `t` (`t`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
diff --git a/mysql-test/main/keywords.result b/mysql-test/main/keywords.result
index db08dbbe741..483a8f7e7e8 100644
--- a/mysql-test/main/keywords.result
+++ b/mysql-test/main/keywords.result
@@ -753,62 +753,62 @@ CREATE FUNCTION test.year() RETURNS OOPS; -- Unknown data type: 'OOPS'
CREATE FUNCTION test.create() RETURNS OOPS; -- Unknown data type: 'OOPS'
CALL p2('DROP FUNCTION $(VAR)');
--------
-DROP FUNCTION non_keyword; -- This command is not supported in the pre
+DROP FUNCTION non_keyword; -- FUNCTION test.non_keyword does not exist
--------
-DROP FUNCTION lpad; -- This command is not supported in the pre
+DROP FUNCTION lpad; -- FUNCTION test.lpad does not exist
--------
-DROP FUNCTION rpad; -- This command is not supported in the pre
+DROP FUNCTION rpad; -- FUNCTION test.rpad does not exist
--------
-DROP FUNCTION adddate; -- This command is not supported in the pre
+DROP FUNCTION adddate; -- FUNCTION test.adddate does not exist
--------
-DROP FUNCTION substr; -- This command is not supported in the pre
+DROP FUNCTION substr; -- FUNCTION test.substr does not exist
--------
-DROP FUNCTION substring; -- This command is not supported in the pre
+DROP FUNCTION substring; -- FUNCTION test.substring does not exist
--------
-DROP FUNCTION trim_oracle; -- This command is not supported in the pre
+DROP FUNCTION trim_oracle; -- FUNCTION test.trim_oracle does not exist
--------
-DROP FUNCTION ascii; -- This command is not supported in the pre
+DROP FUNCTION ascii; -- FUNCTION test.ascii does not exist
--------
DROP FUNCTION replace; -- ..syntax.. near 'replace' at line 1
--------
-DROP FUNCTION weight_string; -- This command is not supported in the pre
+DROP FUNCTION weight_string; -- FUNCTION test.weight_string does not exi
--------
DROP FUNCTION char; -- ..syntax.. near 'char' at line 1
--------
-DROP FUNCTION trim; -- This command is not supported in the pre
+DROP FUNCTION trim; -- FUNCTION test.trim does not exist
--------
-DROP FUNCTION year; -- This command is not supported in the pre
+DROP FUNCTION year; -- FUNCTION test.year does not exist
--------
DROP FUNCTION create; -- ..syntax.. near 'create' at line 1
CALL p2('DROP FUNCTION test.$(VAR)');
--------
-DROP FUNCTION test.non_keyword; -- This command is not supported in the pre
+DROP FUNCTION test.non_keyword; -- FUNCTION test.non_keyword does not exist
--------
-DROP FUNCTION test.lpad; -- This command is not supported in the pre
+DROP FUNCTION test.lpad; -- FUNCTION test.lpad does not exist
--------
-DROP FUNCTION test.rpad; -- This command is not supported in the pre
+DROP FUNCTION test.rpad; -- FUNCTION test.rpad does not exist
--------
-DROP FUNCTION test.adddate; -- This command is not supported in the pre
+DROP FUNCTION test.adddate; -- FUNCTION test.adddate does not exist
--------
-DROP FUNCTION test.substr; -- This command is not supported in the pre
+DROP FUNCTION test.substr; -- FUNCTION test.substr does not exist
--------
-DROP FUNCTION test.substring; -- This command is not supported in the pre
+DROP FUNCTION test.substring; -- FUNCTION test.substring does not exist
--------
-DROP FUNCTION test.trim_oracle; -- This command is not supported in the pre
+DROP FUNCTION test.trim_oracle; -- FUNCTION test.trim_oracle does not exist
--------
-DROP FUNCTION test.ascii; -- This command is not supported in the pre
+DROP FUNCTION test.ascii; -- FUNCTION test.ascii does not exist
--------
-DROP FUNCTION test.replace; -- This command is not supported in the pre
+DROP FUNCTION test.replace; -- FUNCTION test.replace does not exist
--------
-DROP FUNCTION test.weight_string; -- This command is not supported in the pre
+DROP FUNCTION test.weight_string; -- FUNCTION test.weight_string does not exi
--------
-DROP FUNCTION test.char; -- This command is not supported in the pre
+DROP FUNCTION test.char; -- FUNCTION test.char does not exist
--------
-DROP FUNCTION test.trim; -- This command is not supported in the pre
+DROP FUNCTION test.trim; -- FUNCTION test.trim does not exist
--------
-DROP FUNCTION test.year; -- This command is not supported in the pre
+DROP FUNCTION test.year; -- FUNCTION test.year does not exist
--------
-DROP FUNCTION test.create; -- This command is not supported in the pre
+DROP FUNCTION test.create; -- FUNCTION test.create does not exist
DROP TABLE t1;
DROP PROCEDURE p1;
DROP PROCEDURE p2;
diff --git a/mysql-test/main/kill.test b/mysql-test/main/kill.test
index d13dd270f78..e89bdb22cd1 100644
--- a/mysql-test/main/kill.test
+++ b/mysql-test/main/kill.test
@@ -9,8 +9,6 @@
-- source include/count_sessions.inc
-- source include/not_embedded.inc
--- source include/have_debug_sync.inc
--- source include/have_debug_sync.inc
--disable_service_connection
diff --git a/mysql-test/main/locale.result b/mysql-test/main/locale.result
index f136e9e99ab..d29482ceffa 100644
--- a/mysql-test/main/locale.result
+++ b/mysql-test/main/locale.result
@@ -111,9 +111,9 @@ Warnings:
Note 1265 Data truncated for column 'd' at row 1
SET lc_time_names=ru_RU;
SELECT c FROM t1 WHERE DAYNAME(d)<>c;
-ERROR HY000: Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation '<>'
+ERROR HY000: Illegal mix of collations (utf8mb3_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation '<>'
SELECT c FROM t1 WHERE MONTHNAME(d)<>c;
-ERROR HY000: Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation '<>'
+ERROR HY000: Illegal mix of collations (utf8mb3_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation '<>'
SET lc_time_names=en_US;
SELECT c FROM t1 WHERE DAYNAME(d)<>c;
c
@@ -238,7 +238,7 @@ a a1 b b1
10 Oct October 10 Окт ОктÑÐ±Ñ€Ñ 123,456,789.00 123'456'789,00
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select date_format('2001-10-02','%c %b %M') AS `a`,date_format('2001-10-02','%c %b %M','ru_RU') AS `a1`,format(123456789,2) AS `b`,format(123456789,2,'rm_CH') AS `b1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select date_format('2001-10-02','%c %b %M') AS `a`,date_format('2001-10-02','%c %b %M','ru_RU') AS `a1`,format(123456789,2) AS `b`,format(123456789,2,'rm_CH') AS `b1` utf8mb3 utf8mb3_general_ci
drop view v1;
#
# End of 10.2 tests
diff --git a/mysql-test/main/lock.result b/mysql-test/main/lock.result
index 7abeaf035ee..d0adc923563 100644
--- a/mysql-test/main/lock.result
+++ b/mysql-test/main/lock.result
@@ -535,3 +535,25 @@ DROP TABLE t;
#
# End of 10.5 tests
#
+#
+# MDEV-19198 Assertion `(create_info->tmp_table()) || ....`
+# failed in mysql_create_like_table
+#
+CREATE TABLE t1 (c INT);
+CREATE TABLE t2 (c INT);
+LOCK TABLES t1 WRITE, t2 READ;
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+Warnings:
+Note 1050 Table 't1' already exists
+UNLOCK TABLES;
+LOCK TABLES t1 READ , t2 READ;
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
+UNLOCK TABLES;
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+Warnings:
+Note 1050 Table 't1' already exists
+DROP TABLES t1,t2;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/lock.test b/mysql-test/main/lock.test
index 8f2435160c3..3e21fb891b8 100644
--- a/mysql-test/main/lock.test
+++ b/mysql-test/main/lock.test
@@ -651,3 +651,28 @@ DROP TABLE t;
--echo #
--echo # End of 10.5 tests
--echo #
+
+--echo #
+--echo # MDEV-19198 Assertion `(create_info->tmp_table()) || ....`
+--echo # failed in mysql_create_like_table
+--echo #
+
+CREATE TABLE t1 (c INT);
+CREATE TABLE t2 (c INT);
+
+LOCK TABLES t1 WRITE, t2 READ;
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+UNLOCK TABLES;
+
+LOCK TABLES t1 READ , t2 READ;
+--error ER_TABLE_NOT_LOCKED_FOR_WRITE
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+UNLOCK TABLES;
+
+CREATE TABLE IF NOT EXISTS t1 LIKE t2;
+
+DROP TABLES t1,t2;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/lock_kill.test b/mysql-test/main/lock_kill.test
index 2c1396e5ff3..5cf67fd3bc8 100644
--- a/mysql-test/main/lock_kill.test
+++ b/mysql-test/main/lock_kill.test
@@ -17,8 +17,10 @@ LOCK TABLE t1 WRITE;
eval KILL $conid;
--enable_query_log
--connection con1
+--disable_warnings
--error 0,2006,2013,ER_CONNECTION_KILLED
reap;
+--enable_warnings
--connection default
--disconnect con1
DROP TABLE t1;
@@ -35,8 +37,10 @@ LOCK TABLE t1 WRITE, t2 WRITE;
eval KILL $conid;
--enable_query_log
--connection con1
+--disable_warnings
--error 0,2006,2013,ER_CONNECTION_KILLED
reap;
+--enable_warnings
--connection default
--disconnect con1
DROP TABLE t1, t2;
diff --git a/mysql-test/main/lock_sync.test b/mysql-test/main/lock_sync.test
index ed0ae19f921..b2cb0bc058c 100644
--- a/mysql-test/main/lock_sync.test
+++ b/mysql-test/main/lock_sync.test
@@ -82,6 +82,7 @@ create view v1 as select i from t1;
create view v2 as select j from t2 where j in (select i from t1);
create procedure p1(k int) insert into t2 values (k);
delimiter |;
+--enable_prepare_warnings
create function f1() returns int
begin
declare j int;
@@ -223,6 +224,8 @@ begin
end|
delimiter ;|
+--disable_prepare_warnings
+
--echo #
--echo # Set common variables to be used by the scripts
--echo # called below.
diff --git a/mysql-test/main/locking_clause.result b/mysql-test/main/locking_clause.result
new file mode 100644
index 00000000000..d2ebfe4799f
--- /dev/null
+++ b/mysql-test/main/locking_clause.result
@@ -0,0 +1,164 @@
+CREATE TABLE t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (1, 1);
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE TABLE t2 ( a INT );
+INSERT INTO t2 VALUES (1);
+#
+# The new non-standard keywords should still be useable as identifiers.
+# The standard ones should not.
+#
+CREATE TABLE t ( of INT );
+CREATE TABLE t0 ( skip INT, locked INT, nowait INT );
+DROP TABLE t, t0;
+CREATE PROCEDURE p0() BEGIN of: LOOP LEAVE of; END LOOP of; END|
+CREATE PROCEDURE p1() BEGIN skip: LOOP LEAVE skip; END LOOP skip; END|
+CREATE PROCEDURE p2() BEGIN locked: LOOP LEAVE locked; END LOOP locked; END|
+CREATE PROCEDURE p3() BEGIN nowait: LOOP LEAVE nowait; END LOOP nowait; END|
+DROP PROCEDURE p0;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+#
+# Test of the syntax.
+#
+#
+# UPDATE ...
+#
+SELECT * FROM t1 FOR UPDATE;
+a b
+1 1
+SELECT * FROM t1 FOR UPDATE NOWAIT;
+a b
+1 1
+SELECT * FROM t1 FOR UPDATE SKIP LOCKED;
+a b
+1 1
+#
+# Dual locking clauses
+#
+SELECT * FROM t1 JOIN t2 FOR UPDATE;
+a b a
+1 1 1
+SELECT * FROM t1 STRAIGHT_JOIN t2 FOR UPDATE;
+a b a
+1 1 1
+#
+# Derived tables and views.
+#
+SELECT 1 FROM ( SELECT 1 ) AS t2 FOR UPDATE;
+1
+1
+SELECT 1 FROM v1 FOR UPDATE;
+1
+1
+#
+# Test of syntax errors.
+#
+SELECT * FROM t1 FOR SHARE WAIT WAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE WAIT WAIT' at line 1
+SELECT * FROM t1 FOR SHARE WAIT NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE WAIT NOWAIT' at line 1
+SELECT * FROM t1 FOR SHARE WAIT SKIP LOCKED;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE WAIT SKIP LOCKED' at line 1
+SELECT * FROM t1 FOR SHARE WAIT 3 SKIP LOCKED;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE WAIT 3 SKIP LOCKED' at line 1
+SELECT * FROM t1 FOR SHARE NOWAIT SKIP LOCKED;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE NOWAIT SKIP LOCKED' at line 1
+SELECT 1 FOR UPDATE UNION SELECT 2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
+SELECT 1 LOCK IN SHARE MODE UNION SELECT 2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
+SELECT 1 FOR SHARE UNION SELECT 2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SHARE UNION SELECT 2' at line 1
+SELECT * FROM t1 LEFT JOIN t2 FOR UPDATE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOR UPDATE' at line 1
+SELECT * FROM t1 LEFT JOIN t2 FOR SHARE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOR SHARE' at line 1
+SELECT * FROM t1 LEFT JOIN t2 FOR SHARE OF t1 FOR UPDATE OF t2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOR SHARE OF t1 FOR UPDATE OF t2' at line 1
+SELECT * FROM t1 RIGHT JOIN t2 FOR SHARE OF t1 FOR UPDATE OF t2;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOR SHARE OF t1 FOR UPDATE OF t2' at line 1
+#
+# Test of error messages.
+#
+CREATE DATABASE db1;
+CREATE TABLE db1.t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (10, 10);
+SELECT MIN(a) FROM t1 FOR UPDATE SKIP LOCKED;
+MIN(a)
+1
+SELECT MAX(a) FROM t1 FOR UPDATE SKIP LOCKED;
+MAX(a)
+10
+SELECT SUM(a) FROM t1 FOR UPDATE SKIP LOCKED;
+SUM(a)
+11
+SELECT MIN(a) FROM t1 FOR UPDATE NOWAIT;
+MIN(a)
+1
+SELECT MAX(a) FROM t1 FOR UPDATE NOWAIT;
+MAX(a)
+10
+SELECT SUM(a) FROM t1 FOR UPDATE NOWAIT;
+SUM(a)
+11
+SELECT DISTINCT * FROM t1 FOR UPDATE SKIP LOCKED;
+a b
+1 1
+10 10
+SELECT DISTINCT * FROM t1 FOR UPDATE NOWAIT;
+a b
+1 1
+10 10
+SELECT MIN(b) FROM t1 GROUP BY a FOR UPDATE SKIP LOCKED;
+MIN(b)
+1
+10
+#
+# Regression testing.
+#
+DROP DATABASE db1;
+DROP VIEW v1;
+DROP TABLE t1, t2;
+#
+# Bug#25972285: UNCLEAR ERROR MESSAGE FOR NOWAIT
+#
+CREATE USER test@localhost;
+GRANT CREATE, SELECT, UPDATE on *.* to test@localhost;
+CREATE USER test2@localhost;
+GRANT CREATE, SELECT, UPDATE on *.* to test2@localhost;
+CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
+INSERT INTO t1 VALUES ( 1 );
+connect con1, localhost, test, , test;
+BEGIN;
+SELECT * FROM t1 WHERE a = 2 FOR UPDATE ;
+a
+connect con2,localhost,test2,,test;
+BEGIN;
+SELECT * FROM t1 FOR UPDATE NOWAIT;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+COMMIT;
+connection default;
+disconnect con1;
+disconnect con2;
+DROP TABLE t1;
+DROP USER test@localhost;
+DROP USER test2@localhost;
+#
+# Bug#30237291: "SELECT ... INTO VAR_NAME FOR UPDATE" NOT WORKING IN
+# MYSQL 8
+#
+SELECT 1 FROM DUAL LIMIT 1 INTO @var FOR UPDATE;
+Warnings:
+Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
+SELECT 1 FROM DUAL LIMIT 1 FOR UPDATE INTO @var;
+Warnings:
+Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
+SELECT 1 FROM DUAL LIMIT 1 INTO @var FOR UPDATE INTO @var;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var' at line 1
+SELECT 1 UNION SELECT 1 FOR UPDATE INTO @var;
+Warnings:
+Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
+SELECT 1 UNION SELECT 1 INTO @var FOR UPDATE;
+Warnings:
+Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
diff --git a/mysql-test/main/locking_clause.test b/mysql-test/main/locking_clause.test
new file mode 100644
index 00000000000..ccf51103e49
--- /dev/null
+++ b/mysql-test/main/locking_clause.test
@@ -0,0 +1,165 @@
+--source include/have_innodb.inc
+
+CREATE TABLE t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (1, 1);
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+
+CREATE TABLE t2 ( a INT );
+INSERT INTO t2 VALUES (1);
+
+--echo #
+--echo # The new non-standard keywords should still be useable as identifiers.
+--echo # The standard ones should not.
+--echo #
+
+CREATE TABLE t ( of INT );
+CREATE TABLE t0 ( skip INT, locked INT, nowait INT );
+DROP TABLE t, t0;
+
+delimiter |;
+
+CREATE PROCEDURE p0() BEGIN of: LOOP LEAVE of; END LOOP of; END|
+CREATE PROCEDURE p1() BEGIN skip: LOOP LEAVE skip; END LOOP skip; END|
+CREATE PROCEDURE p2() BEGIN locked: LOOP LEAVE locked; END LOOP locked; END|
+CREATE PROCEDURE p3() BEGIN nowait: LOOP LEAVE nowait; END LOOP nowait; END|
+
+delimiter ;|
+
+DROP PROCEDURE p0;
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+
+--echo #
+--echo # Test of the syntax.
+--echo #
+
+--echo #
+--echo # UPDATE ...
+--echo #
+SELECT * FROM t1 FOR UPDATE;
+SELECT * FROM t1 FOR UPDATE NOWAIT;
+SELECT * FROM t1 FOR UPDATE SKIP LOCKED;
+
+--echo #
+--echo # Dual locking clauses
+--echo #
+SELECT * FROM t1 JOIN t2 FOR UPDATE;
+SELECT * FROM t1 STRAIGHT_JOIN t2 FOR UPDATE;
+
+--echo #
+--echo # Derived tables and views.
+--echo #
+SELECT 1 FROM ( SELECT 1 ) AS t2 FOR UPDATE;
+SELECT 1 FROM v1 FOR UPDATE;
+
+--echo #
+--echo # Test of syntax errors.
+--echo #
+
+--error ER_PARSE_ERROR
+SELECT * FROM t1 FOR SHARE WAIT WAIT;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 FOR SHARE WAIT NOWAIT;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 FOR SHARE WAIT SKIP LOCKED;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 FOR SHARE WAIT 3 SKIP LOCKED;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 FOR SHARE NOWAIT SKIP LOCKED;
+--error ER_PARSE_ERROR
+SELECT 1 FOR UPDATE UNION SELECT 2;
+--error ER_PARSE_ERROR
+SELECT 1 LOCK IN SHARE MODE UNION SELECT 2;
+--error ER_PARSE_ERROR
+SELECT 1 FOR SHARE UNION SELECT 2;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 LEFT JOIN t2 FOR UPDATE;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 LEFT JOIN t2 FOR SHARE;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 LEFT JOIN t2 FOR SHARE OF t1 FOR UPDATE OF t2;
+--error ER_PARSE_ERROR
+SELECT * FROM t1 RIGHT JOIN t2 FOR SHARE OF t1 FOR UPDATE OF t2;
+
+--echo #
+--echo # Test of error messages.
+--echo #
+
+CREATE DATABASE db1;
+CREATE TABLE db1.t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (10, 10);
+
+SELECT MIN(a) FROM t1 FOR UPDATE SKIP LOCKED;
+SELECT MAX(a) FROM t1 FOR UPDATE SKIP LOCKED;
+SELECT SUM(a) FROM t1 FOR UPDATE SKIP LOCKED;
+
+SELECT MIN(a) FROM t1 FOR UPDATE NOWAIT;
+SELECT MAX(a) FROM t1 FOR UPDATE NOWAIT;
+SELECT SUM(a) FROM t1 FOR UPDATE NOWAIT;
+
+SELECT DISTINCT * FROM t1 FOR UPDATE SKIP LOCKED;
+SELECT DISTINCT * FROM t1 FOR UPDATE NOWAIT;
+
+SELECT MIN(b) FROM t1 GROUP BY a FOR UPDATE SKIP LOCKED;
+
+--echo #
+--echo # Regression testing.
+--echo #
+
+DROP DATABASE db1;
+DROP VIEW v1;
+DROP TABLE t1, t2;
+
+--echo #
+--echo # Bug#25972285: UNCLEAR ERROR MESSAGE FOR NOWAIT
+--echo #
+--disable_view_protocol
+CREATE USER test@localhost;
+GRANT CREATE, SELECT, UPDATE on *.* to test@localhost;
+
+CREATE USER test2@localhost;
+GRANT CREATE, SELECT, UPDATE on *.* to test2@localhost;
+
+CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
+INSERT INTO t1 VALUES ( 1 );
+
+connect (con1, localhost, test, , test);
+
+BEGIN;
+SELECT * FROM t1 WHERE a = 2 FOR UPDATE ;
+
+connect (con2,localhost,test2,,test);
+BEGIN;
+
+--error ER_LOCK_WAIT_TIMEOUT
+SELECT * FROM t1 FOR UPDATE NOWAIT;
+
+COMMIT;
+
+connection default;
+disconnect con1;
+disconnect con2;
+
+DROP TABLE t1;
+DROP USER test@localhost;
+DROP USER test2@localhost;
+--enable_view_protocol
+
+--echo #
+--echo # Bug#30237291: "SELECT ... INTO VAR_NAME FOR UPDATE" NOT WORKING IN
+--echo # MYSQL 8
+--echo #
+
+--enable_prepare_warnings
+SELECT 1 FROM DUAL LIMIT 1 INTO @var FOR UPDATE;
+SELECT 1 FROM DUAL LIMIT 1 FOR UPDATE INTO @var;
+
+# Double INTO should fail:
+--error ER_PARSE_ERROR
+SELECT 1 FROM DUAL LIMIT 1 INTO @var FOR UPDATE INTO @var;
+
+SELECT 1 UNION SELECT 1 FOR UPDATE INTO @var;
+SELECT 1 UNION SELECT 1 INTO @var FOR UPDATE;
+--disable_prepare_warnings
diff --git a/mysql-test/main/log_tables.result b/mysql-test/main/log_tables.result
index f4f06d1bea0..d4f1f59ec1c 100644
--- a/mysql-test/main/log_tables.result
+++ b/mysql-test/main/log_tables.result
@@ -57,7 +57,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show fields from mysql.general_log;
Field Type Null Key Default Extra
event_time timestamp(6) NO current_timestamp(6) on update current_timestamp(6)
@@ -82,7 +82,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
show fields from mysql.slow_log;
Field Type Null Key Default Extra
start_time timestamp(6) NO current_timestamp(6) on update current_timestamp(6)
@@ -172,7 +172,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table mysql.slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -189,7 +189,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
alter table mysql.general_log engine=myisam;
alter table mysql.slow_log engine=myisam;
show create table mysql.general_log;
@@ -201,7 +201,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table mysql.slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -218,7 +218,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
set global general_log='ON';
set global slow_query_log='ON';
select * from mysql.general_log;
@@ -792,10 +792,11 @@ set @lparam = "000 001 002 003 004 005 006 007 008 009"
prepare long_query from "select ? as long_query";
execute long_query using @lparam;
set global general_log = off;
-select command_type, argument from mysql.general_log where thread_id = @thread_id;
-command_type argument
-Query set global general_log = on
-Query set @lparam = "000 001 002 003 004 005 006 007 008 009"
+select argument from mysql.general_log where thread_id = @thread_id
+AND (command_type = 'Query' OR command_type= 'Execute');
+argument
+set global general_log = on
+set @lparam = "000 001 002 003 004 005 006 007 008 009"
"010 011 012 013 014 015 016 017 018 019"
"020 021 022 023 024 025 026 027 028 029"
"030 031 032 033 034 035 036 037 038 039"
@@ -895,11 +896,10 @@ Query set @lparam = "000 001 002 003 004 005 006 007 008 009"
"970 971 972 973 974 975 976 977 978 979"
"980 981 982 983 984 985 986 987 988 989"
"990 991 992 993 994 995 996 997 998 999"
-Query prepare long_query from "select ? as long_query"
-Prepare select ? as long_query
-Query execute long_query using @lparam
-Execute select '000 001 002 003 004 005 006 007 008 009010 011 012 013 014 015 016 017 018 019020 021 022 023 024 025 026 027 028 029030 031 032 033 034 035 036 037 038 039040 041 042 043 044 045 046 047 048 049050 051 052 053 054 055 056 057 058 059060 061 062 063 064 065 066 067 068 069070 071 072 073 074 075 076 077 078 079080 081 082 083 084 085 086 087 088 089090 091 092 093 094 095 096 097 098 099100 101 102 103 104 105 106 107 108 109110 111 112 113 114 115 116 117 118 119120 121 122 123 124 125 126 127 128 129130 131 132 133 134 135 136 137 138 139140 141 142 143 144 145 146 147 148 149150 151 152 153 154 155 156 157 158 159160 161 162 163 164 165 166 167 168 169170 171 172 173 174 175 176 177 178 179180 181 182 183 184 185 186 187 188 189190 191 192 193 194 195 196 197 198 199200 201 202 203 204 205 206 207 208 209210 211 212 213 214 215 216 217 218 219220 221 222 223 224 225 226 227 228 229230 231 232 233 234 235 236 237 238 239240 241 242 243 244 245 246 247 248 249250 251 252 253 254 255 256 257 258 259260 261 262 263 264 265 266 267 268 269270 271 272 273 274 275 276 277 278 279280 281 282 283 284 285 286 287 288 289290 291 292 293 294 295 296 297 298 299300 301 302 303 304 305 306 307 308 309310 311 312 313 314 315 316 317 318 319320 321 322 323 324 325 326 327 328 329330 331 332 333 334 335 336 337 338 339340 341 342 343 344 345 346 347 348 349350 351 352 353 354 355 356 357 358 359360 361 362 363 364 365 366 367 368 369370 371 372 373 374 375 376 377 378 379380 381 382 383 384 385 386 387 388 389390 391 392 393 394 395 396 397 398 399400 401 402 403 404 405 406 407 408 409410 411 412 413 414 415 416 417 418 419420 421 422 423 424 425 426 427 428 429430 431 432 433 434 435 436 437 438 439440 441 442 443 444 445 446 447 448 449450 451 452 453 454 455 456 457 458 459460 461 462 463 464 465 466 467 468 469470 471 472 473 474 475 476 477 478 479480 481 482 483 484 485 486 487 488 489490 491 492 493 494 495 496 497 498 499500 501 502 503 504 505 506 507 508 509510 511 512 513 514 515 516 517 518 519520 521 522 523 524 525 526 527 528 529530 531 532 533 534 535 536 537 538 539540 541 542 543 544 545 546 547 548 549550 551 552 553 554 555 556 557 558 559560 561 562 563 564 565 566 567 568 569570 571 572 573 574 575 576 577 578 579580 581 582 583 584 585 586 587 588 589590 591 592 593 594 595 596 597 598 599600 601 602 603 604 605 606 607 608 609610 611 612 613 614 615 616 617 618 619620 621 622 623 624 625 626 627 628 629630 631 632 633 634 635 636 637 638 639640 641 642 643 644 645 646 647 648 649650 651 652 653 654 655 656 657 658 659660 661 662 663 664 665 666 667 668 669670 671 672 673 674 675 676 677 678 679680 681 682 683 684 685 686 687 688 689690 691 692 693 694 695 696 697 698 699700 701 702 703 704 705 706 707 708 709710 711 712 713 714 715 716 717 718 719720 721 722 723 724 725 726 727 728 729730 731 732 733 734 735 736 737 738 739740 741 742 743 744 745 746 747 748 749750 751 752 753 754 755 756 757 758 759760 761 762 763 764 765 766 767 768 769770 771 772 773 774 775 776 777 778 779780 781 782 783 784 785 786 787 788 789790 791 792 793 794 795 796 797 798 799800 801 802 803 804 805 806 807 808 809810 811 812 813 814 815 816 817 818 819820 821 822 823 824 825 826 827 828 829830 831 832 833 834 835 836 837 838 839840 841 842 843 844 845 846 847 848 849850 851 852 853 854 855 856 857 858 859860 861 862 863 864 865 866 867 868 869870 871 872 873 874 875 876 877 878 879880 881 882 883 884 885 886 887 888 889890 891 892 893 894 895 896 897 898 899900 901 902 903 904 905 906 907 908 909910 911 912 913 914 915 916 917 918 919920 921 922 923 924 925 926 927 928 929930 931 932 933 934 935 936 937 938 939940 941 942 943 944 945 946 947 948 949950 951 952 953 954 955 956 957 958 959960 961 962 963 964 965 966 967 968 969970 971 972 973 974 975 976 977 978 979980 981 982 983 984 985 986 987 988 989990 991 992 993 994 995 996 997 998 999' as long_query
-Query set global general_log = off
+prepare long_query from "select ? as long_query"
+execute long_query using @lparam
+select '000 001 002 003 004 005 006 007 008 009010 011 012 013 014 015 016 017 018 019020 021 022 023 024 025 026 027 028 029030 031 032 033 034 035 036 037 038 039040 041 042 043 044 045 046 047 048 049050 051 052 053 054 055 056 057 058 059060 061 062 063 064 065 066 067 068 069070 071 072 073 074 075 076 077 078 079080 081 082 083 084 085 086 087 088 089090 091 092 093 094 095 096 097 098 099100 101 102 103 104 105 106 107 108 109110 111 112 113 114 115 116 117 118 119120 121 122 123 124 125 126 127 128 129130 131 132 133 134 135 136 137 138 139140 141 142 143 144 145 146 147 148 149150 151 152 153 154 155 156 157 158 159160 161 162 163 164 165 166 167 168 169170 171 172 173 174 175 176 177 178 179180 181 182 183 184 185 186 187 188 189190 191 192 193 194 195 196 197 198 199200 201 202 203 204 205 206 207 208 209210 211 212 213 214 215 216 217 218 219220 221 222 223 224 225 226 227 228 229230 231 232 233 234 235 236 237 238 239240 241 242 243 244 245 246 247 248 249250 251 252 253 254 255 256 257 258 259260 261 262 263 264 265 266 267 268 269270 271 272 273 274 275 276 277 278 279280 281 282 283 284 285 286 287 288 289290 291 292 293 294 295 296 297 298 299300 301 302 303 304 305 306 307 308 309310 311 312 313 314 315 316 317 318 319320 321 322 323 324 325 326 327 328 329330 331 332 333 334 335 336 337 338 339340 341 342 343 344 345 346 347 348 349350 351 352 353 354 355 356 357 358 359360 361 362 363 364 365 366 367 368 369370 371 372 373 374 375 376 377 378 379380 381 382 383 384 385 386 387 388 389390 391 392 393 394 395 396 397 398 399400 401 402 403 404 405 406 407 408 409410 411 412 413 414 415 416 417 418 419420 421 422 423 424 425 426 427 428 429430 431 432 433 434 435 436 437 438 439440 441 442 443 444 445 446 447 448 449450 451 452 453 454 455 456 457 458 459460 461 462 463 464 465 466 467 468 469470 471 472 473 474 475 476 477 478 479480 481 482 483 484 485 486 487 488 489490 491 492 493 494 495 496 497 498 499500 501 502 503 504 505 506 507 508 509510 511 512 513 514 515 516 517 518 519520 521 522 523 524 525 526 527 528 529530 531 532 533 534 535 536 537 538 539540 541 542 543 544 545 546 547 548 549550 551 552 553 554 555 556 557 558 559560 561 562 563 564 565 566 567 568 569570 571 572 573 574 575 576 577 578 579580 581 582 583 584 585 586 587 588 589590 591 592 593 594 595 596 597 598 599600 601 602 603 604 605 606 607 608 609610 611 612 613 614 615 616 617 618 619620 621 622 623 624 625 626 627 628 629630 631 632 633 634 635 636 637 638 639640 641 642 643 644 645 646 647 648 649650 651 652 653 654 655 656 657 658 659660 661 662 663 664 665 666 667 668 669670 671 672 673 674 675 676 677 678 679680 681 682 683 684 685 686 687 688 689690 691 692 693 694 695 696 697 698 699700 701 702 703 704 705 706 707 708 709710 711 712 713 714 715 716 717 718 719720 721 722 723 724 725 726 727 728 729730 731 732 733 734 735 736 737 738 739740 741 742 743 744 745 746 747 748 749750 751 752 753 754 755 756 757 758 759760 761 762 763 764 765 766 767 768 769770 771 772 773 774 775 776 777 778 779780 781 782 783 784 785 786 787 788 789790 791 792 793 794 795 796 797 798 799800 801 802 803 804 805 806 807 808 809810 811 812 813 814 815 816 817 818 819820 821 822 823 824 825 826 827 828 829830 831 832 833 834 835 836 837 838 839840 841 842 843 844 845 846 847 848 849850 851 852 853 854 855 856 857 858 859860 861 862 863 864 865 866 867 868 869870 871 872 873 874 875 876 877 878 879880 881 882 883 884 885 886 887 888 889890 891 892 893 894 895 896 897 898 899900 901 902 903 904 905 906 907 908 909910 911 912 913 914 915 916 917 918 919920 921 922 923 924 925 926 927 928 929930 931 932 933 934 935 936 937 938 939940 941 942 943 944 945 946 947 948 949950 951 952 953 954 955 956 957 958 959960 961 962 963 964 965 966 967 968 969970 971 972 973 974 975 976 977 978 979980 981 982 983 984 985 986 987 988 989990 991 992 993 994 995 996 997 998 999' as long_query
+set global general_log = off
deallocate prepare long_query;
set global general_log = @old_general_log;
DROP TABLE IF EXISTS log_count;
diff --git a/mysql-test/main/log_tables.test b/mysql-test/main/log_tables.test
index 537bd843af8..22db93bd1ed 100644
--- a/mysql-test/main/log_tables.test
+++ b/mysql-test/main/log_tables.test
@@ -988,7 +988,8 @@ prepare long_query from "select ? as long_query";
execute long_query using @lparam;
--enable_result_log
set global general_log = off;
-select command_type, argument from mysql.general_log where thread_id = @thread_id;
+select argument from mysql.general_log where thread_id = @thread_id
+AND (command_type = 'Query' OR command_type= 'Execute');
deallocate prepare long_query;
set global general_log = @old_general_log;
diff --git a/mysql-test/main/log_tables_upgrade.result b/mysql-test/main/log_tables_upgrade.result
index 8d7b08a11bd..ccdd726cb82 100644
--- a/mysql-test/main/log_tables_upgrade.result
+++ b/mysql-test/main/log_tables_upgrade.result
@@ -46,6 +46,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -55,6 +155,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/long_host.result b/mysql-test/main/long_host.result
new file mode 100644
index 00000000000..57b637de587
--- /dev/null
+++ b/mysql-test/main/long_host.result
@@ -0,0 +1,159 @@
+# check user
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_3456789;
+ERROR HY000: String 'user5678901_345678902_345678903_345678904_345678905_345678906_34567...' is too long for user name (should be no longer than 128)
+SELECT host, user FROM mysql.user where user like "user56789%";
+Host User
+% user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678
+drop user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_3456;
+ERROR HY000: String 'host5678901_345678902_345678903_345678904_345678905_345678906_34567...' is too long for host name (should be no longer than 255)
+SELECT host, user FROM mysql.user where user like "user56789%";
+Host User
+host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345 user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678
+create database mariadbtestdb;
+create database mariadbtestdb2;
+create table mariadbtestdb.t1 (a int, b int);
+create table mariadbtestdb2.t2 (a int);
+create table mariadbtestdb.t3 (a int);
+SET @saved_dbug = @@GLOBAL.debug_dbug;
+set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_long_host,getaddrinfo_fake_good_ipv4";
+# check connect
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select current_user();
+current_user()
+user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345
+# check global privileges
+select * from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+connection default;
+grant SELECT ON *.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+a b
+select * from mariadbtestdb2.t2;
+a
+# check revoke
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+# check data base privileges
+connection default;
+grant SELECT ON mariadbtestdb.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+a b
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+select * from mariadbtestdb.t3;
+a
+# check table privileges
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+grant SELECT ON mariadbtestdb.t1 TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+a b
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+select * from mariadbtestdb.t3;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
+# check column privileges
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+grant SELECT (a) ON mariadbtestdb.t1 TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+select * from mariadbtestdb.t3;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
+select a from mariadbtestdb.t1;
+a
+# check role
+connection default;
+CREATE ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+CREATE ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_3456789;
+ERROR HY000: String 'role5678901_345678902_345678903_345678904_345678905_345678906_34567...' is too long for user name (should be no longer than 128)
+grant SELECT (a) ON mariadbtestdb.t1 TO role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+grant role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678 to user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,;
+connection con1;
+select * from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+select * from mariadbtestdb.t3;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
+select a from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+SELECT CURRENT_ROLE;
+CURRENT_ROLE
+NULL
+SET ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+SELECT CURRENT_ROLE;
+CURRENT_ROLE
+role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678
+select * from mariadbtestdb.t1;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t1`
+select * from mariadbtestdb2.t2;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb2`.`t2`
+select * from mariadbtestdb.t3;
+ERROR 42000: SELECT command denied to user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345' for table `mariadbtestdb`.`t3`
+select a from mariadbtestdb.t1;
+a
+# check procedure
+create procedure foo()
+select a from mariadbtestdb.t1;
+show create procedure foo;
+Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
+foo STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678`@`host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345` PROCEDURE `foo`()
+select a from mariadbtestdb.t1 latin1 latin1_swedish_ci latin1_swedish_ci
+connection default;
+select Host,Db,User,Routine_name,Routine_type,Grantor,Proc_priv from mysql.procs_priv where Routine_name="foo";
+Host Db User Routine_name Routine_type Grantor Proc_priv
+host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345 test user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678 foo PROCEDURE user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345 Execute,Alter Routine
+connection default;
+disconnect con1;
+drop procedure foo;
+SET @@GLOBAL.debug_dbug = @saved_dbug;
+drop user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+DROP ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+drop database mariadbtestdb;
+drop database mariadbtestdb2;
+#
+# MDEV-24968: Assertion `magic < 1<<26' failed in get_magic_sort
+#
+create user u1@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907%';
+drop user u1@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907%';
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_34%';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_34%';
+create user '5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'%';
+drop user '5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'%';
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'h%s%5%7%9%1%3%5%7%9%2%3%5%7%9%3%3%5%7%9%4%3%5%7%9%5%3%5%7%9%6%3%5%7%9%7%3%5%7%9%8%3%5%7%9%9%3%5%7%9%0%3%5%7%';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'h%s%5%7%9%1%3%5%7%9%2%3%5%7%9%3%3%5%7%9%4%3%5%7%9%5%3%5%7%9%6%3%5%7%9%7%3%5%7%9%8%3%5%7%9%9%3%5%7%9%0%3%5%7%';
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%';
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????';
diff --git a/mysql-test/main/long_host.test b/mysql-test/main/long_host.test
new file mode 100644
index 00000000000..0c082bf6fb4
--- /dev/null
+++ b/mysql-test/main/long_host.test
@@ -0,0 +1,198 @@
+
+--source include/have_debug_sync.inc
+--source include/not_embedded.inc
+#enable view protocol after fix MDEV-29542
+--source include/no_view_protocol.inc
+
+--echo # check user
+
+# User 128 characters
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+# User 129 characters
+--error ER_WRONG_STRING_LENGTH
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_3456789;
+
+SELECT host, user FROM mysql.user where user like "user56789%";
+drop user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+
+# Host 255 characters
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+
+# Host 256 characters
+--error ER_WRONG_STRING_LENGTH
+create user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_3456;
+
+SELECT host, user FROM mysql.user where user like "user56789%";
+
+create database mariadbtestdb;
+create database mariadbtestdb2;
+create table mariadbtestdb.t1 (a int, b int);
+create table mariadbtestdb2.t2 (a int);
+create table mariadbtestdb.t3 (a int);
+
+
+SET @saved_dbug = @@GLOBAL.debug_dbug;
+set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_long_host,getaddrinfo_fake_good_ipv4";
+
+--echo # check connect
+
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+select current_user();
+
+--echo # check global privileges
+
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+
+connection default;
+grant SELECT ON *.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+select * from mariadbtestdb.t1;
+select * from mariadbtestdb2.t2;
+
+
+--echo # check revoke
+
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+
+
+--echo # check data base privileges
+
+connection default;
+grant SELECT ON mariadbtestdb.* TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+select * from mariadbtestdb.t3;
+
+--echo # check table privileges
+
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+grant SELECT ON mariadbtestdb.t1 TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t3;
+
+--echo # check column privileges
+
+connection default;
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+grant SELECT (a) ON mariadbtestdb.t1 TO user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t3;
+select a from mariadbtestdb.t1;
+
+--echo # check role
+
+connection default;
+
+# Role 128 characters
+CREATE ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+
+# Role 129 characters
+--error ER_WRONG_STRING_LENGTH
+CREATE ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_3456789;
+
+grant SELECT (a) ON mariadbtestdb.t1 TO role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+
+REVOKE ALL PRIVILEGES, GRANT OPTION FROM user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+
+grant role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678 to user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+
+disconnect con1;
+connect (con1,"127.0.0.1","user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678",,test,$MASTER_MYPORT,);
+connection con1;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t3;
+--error ER_TABLEACCESS_DENIED_ERROR
+select a from mariadbtestdb.t1;
+
+SELECT CURRENT_ROLE;
+SET ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+SELECT CURRENT_ROLE;
+
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb2.t2;
+--error ER_TABLEACCESS_DENIED_ERROR
+select * from mariadbtestdb.t3;
+select a from mariadbtestdb.t1;
+
+
+--echo # check procedure
+
+create procedure foo()
+ select a from mariadbtestdb.t1;
+show create procedure foo;
+
+connection default;
+select Host,Db,User,Routine_name,Routine_type,Grantor,Proc_priv from mysql.procs_priv where Routine_name="foo";
+
+
+connection default;
+disconnect con1;
+drop procedure foo;
+
+SET @@GLOBAL.debug_dbug = @saved_dbug;
+
+drop user user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678@host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_345;
+DROP ROLE role5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678;
+drop database mariadbtestdb;
+drop database mariadbtestdb2;
+
+--echo #
+--echo # MDEV-24968: Assertion `magic < 1<<26' failed in get_magic_sort
+--echo #
+
+create user u1@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907%';
+drop user u1@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907%';
+
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_34%';
+
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'host5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678913_345678914_345678915_345678916_345678917_345678918_345678919_345678920_345678921_345678922_345678923_345678924_345678925_34%';
+
+create user '5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'%';
+drop user '5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'%';
+
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'h%s%5%7%9%1%3%5%7%9%2%3%5%7%9%3%3%5%7%9%4%3%5%7%9%5%3%5%7%9%6%3%5%7%9%7%3%5%7%9%8%3%5%7%9%9%3%5%7%9%0%3%5%7%';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'h%s%5%7%9%1%3%5%7%9%2%3%5%7%9%3%3%5%7%9%4%3%5%7%9%5%3%5%7%9%6%3%5%7%9%7%3%5%7%9%8%3%5%7%9%9%3%5%7%9%0%3%5%7%';
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%?%';
+
+create user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????';
+drop user 'user5678901_345678902_345678903_345678904_345678905_345678906_345678907_345678908_345678909_345678910_345678911_345678912_345678'@'???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????';
diff --git a/mysql-test/main/long_unique.result b/mysql-test/main/long_unique.result
index 7368b10fbbd..7f8110a283e 100644
--- a/mysql-test/main/long_unique.result
+++ b/mysql-test/main/long_unique.result
@@ -37,6 +37,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignored NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -51,8 +52,8 @@ select TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,ORDINAL_POSITION,COLUMN
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA COLUMN_COMMENT IS_GENERATED GENERATION_EXPRESSION
def test t1 a 1 NULL YES blob 65535 65535 NULL NULL NULL NULL NULL blob UNI NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG def
CONSTRAINT_SCHEMA test
@@ -210,8 +211,8 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `db_row_hash_1` (`db_row_hash_1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
#add column with unique index on blob ;
alter table t1 add column a blob unique;
show create table t1;
@@ -239,9 +240,9 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES HASH NO
# try to change the blob unique datatype;
#this will change index to b tree;
alter table t1 modify column aa int ;
@@ -257,9 +258,9 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
alter table t1 add column clm blob unique;
#try changing the name ;
alter table t1 change column clm clm_changed blob;
@@ -277,10 +278,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `clm` (`clm_changed`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
-t1 0 clm 1 clm_changed A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
+t1 0 clm 1 clm_changed A NULL NULL NULL YES HASH NO
#now drop the unique key;
alter table t1 drop key clm;
show create table t1;
@@ -296,17 +297,17 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
drop table t1;
create table t1 (a TEXT CHARSET latin1 COLLATE latin1_german2_ci unique);
desc t1;
Field Type Null Key Default Extra
a text YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
insert into t1 values ('ae');
insert into t1 values ('AE');
ERROR 23000: Duplicate entry 'AE' for key 'a'
@@ -318,9 +319,9 @@ Field Type Null Key Default Extra
a int(11) NO PRI NULL
b blob YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
insert into t1 values(1,1),(2,2),(3,3);
insert into t1 values(1,1);
ERROR 23000: Duplicate entry '1' for key 'b'
@@ -355,11 +356,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `e` (`e`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -381,11 +382,11 @@ def test t1 c 3 NULL YES blob 65535 65535 NULL NULL NULL NULL NULL blob UNI NE
def test t1 d 4 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text UNI NEVER NULL
def test t1 e 5 NULL YES varchar 3000 3000 NULL NULL NULL latin1 latin1_swedish_ci varchar(3000) UNI NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
-def test t1 0 test c 1 c A NULL NULL NULL YES HASH
-def test t1 0 test d 1 d A NULL NULL NULL YES HASH
-def test t1 0 test e 1 e A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
+def test t1 0 test c 1 c A NULL NULL NULL YES HASH NO
+def test t1 0 test d 1 d A NULL NULL NULL YES HASH NO
+def test t1 0 test e 1 e A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
def test a def test t1 a 1 NULL NULL NULL NULL
@@ -548,11 +549,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `e` (`e`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
#add column with unique index on blob;
alter table t1 add column a blob unique;
show create table t1;
@@ -573,12 +574,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
#try to change the blob unique column name;
#this will change index to b tree;
alter table t1 modify column a int , modify column e int;
@@ -600,12 +601,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 add column clm1 blob unique,add column clm2 blob unique;
#try changing the name;
alter table t1 change column clm1 clm_changed1 blob, change column clm2 clm_changed2 blob;
@@ -631,14 +632,14 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `clm2` (`clm_changed2`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 clm1 1 clm_changed1 A NULL NULL NULL YES HASH
-t1 0 clm2 1 clm_changed2 A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 clm1 1 clm_changed1 A NULL NULL NULL YES HASH NO
+t1 0 clm2 1 clm_changed2 A NULL NULL NULL YES HASH NO
#now drop the unique key;
alter table t1 drop key clm1, drop key clm2;
show create table t1;
@@ -661,12 +662,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `d` (`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
drop table t1;
#now the table with key on multiple columns; the ultimate test;
create table t1(a blob, b int , c varchar(2000) , d text , e varchar(3000) , f longblob , g int , h text ,
@@ -702,21 +703,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -741,21 +742,21 @@ def test t1 f 6 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL NULL
def test t1 g 7 NULL YES int NULL NULL 10 0 NULL NULL NULL int(11) NEVER NULL
def test t1 h 8 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
-def test t1 0 test a 2 b A NULL NULL NULL YES HASH
-def test t1 0 test a 3 c A NULL NULL NULL YES HASH
-def test t1 0 test c 1 c A NULL NULL NULL YES HASH
-def test t1 0 test c 2 d A NULL NULL NULL YES HASH
-def test t1 0 test c 3 e A NULL NULL NULL YES HASH
-def test t1 0 test e 1 e A NULL NULL NULL YES HASH
-def test t1 0 test e 2 f A NULL NULL NULL YES HASH
-def test t1 0 test e 3 g A NULL NULL NULL YES HASH
-def test t1 0 test e 4 h A NULL NULL NULL YES HASH
-def test t1 0 test b 1 b A NULL NULL NULL YES HASH
-def test t1 0 test b 2 d A NULL NULL NULL YES HASH
-def test t1 0 test b 3 g A NULL NULL NULL YES HASH
-def test t1 0 test b 4 h A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
+def test t1 0 test a 2 b A NULL NULL NULL YES HASH NO
+def test t1 0 test a 3 c A NULL NULL NULL YES HASH NO
+def test t1 0 test c 1 c A NULL NULL NULL YES HASH NO
+def test t1 0 test c 2 d A NULL NULL NULL YES HASH NO
+def test t1 0 test c 3 e A NULL NULL NULL YES HASH NO
+def test t1 0 test e 1 e A NULL NULL NULL YES HASH NO
+def test t1 0 test e 2 f A NULL NULL NULL YES HASH NO
+def test t1 0 test e 3 g A NULL NULL NULL YES HASH NO
+def test t1 0 test e 4 h A NULL NULL NULL YES HASH NO
+def test t1 0 test b 1 b A NULL NULL NULL YES HASH NO
+def test t1 0 test b 2 d A NULL NULL NULL YES HASH NO
+def test t1 0 test b 3 g A NULL NULL NULL YES HASH NO
+def test t1 0 test b 4 h A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
def test a def test t1 a 1 NULL NULL NULL NULL
@@ -858,21 +859,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
alter table t1 drop column db_row_hash_7 , drop column db_row_hash_5 ,
drop column db_row_hash_1, drop column db_row_hash_2 ;
show create table t1;
@@ -892,21 +893,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#try to change column names;
alter table t1 change column a aa blob , change column b bb blob , change column d dd blob;
show create table t1;
@@ -926,21 +927,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`bb`,`dd`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 aa A NULL NULL NULL YES HASH
-t1 0 a 2 bb A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 dd A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 bb A NULL NULL NULL YES HASH
-t1 0 b 2 dd A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 aa A NULL NULL NULL YES HASH NO
+t1 0 a 2 bb A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 dd A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 bb A NULL NULL NULL YES HASH NO
+t1 0 b 2 dd A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
alter table t1 change column aa a blob , change column bb b blob , change column dd d blob;
show create table t1;
Table Create Table
@@ -959,21 +960,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#now we will change the data type to int and varchar limit so that we no longer require hash_index;
#on key a_b_c;
alter table t1 modify column a varchar(20) , modify column b varchar(20) , modify column c varchar(20);
@@ -994,21 +995,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 a 2 b A NULL NULL NULL YES BTREE
-t1 0 a 3 c A NULL NULL NULL YES BTREE
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 a 2 b A NULL NULL NULL YES BTREE NO
+t1 0 a 3 c A NULL NULL NULL YES BTREE NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#change it back;
alter table t1 modify column a blob , modify column b blob , modify column c blob;
show create table t1;
@@ -1028,21 +1029,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#try to delete blob column in unique;
truncate table t1;
#now try to delete keys;
@@ -1062,14 +1063,14 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
drop table t1;
#now alter table containing some data basically some tests with ignore;
create table t1 (a blob);
@@ -1096,8 +1097,8 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
drop table t1;
#Now with multiple keys;
create table t1(a blob , b blob, c blob , d blob , e int);
@@ -1134,12 +1135,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 c A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 c A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
drop table t1;
#visibility of db_row_hash
create table t1 (a blob unique , b blob unique);
@@ -1230,8 +1231,8 @@ desc t1;
Field Type Null Key Default Extra
a blob YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL 3000 NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL 3000 NULL YES HASH NO
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1262,11 +1263,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `c` (`c`(4500),`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL 3500 NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL 4500 NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL 3500 NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL 4500 NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
drop table t1;
#ext bug
create table t1(a int primary key, b blob unique, c int, d blob , index(c));
diff --git a/mysql-test/main/long_unique_big.result b/mysql-test/main/long_unique_big.result
index 7510ba33f7b..25b036945bb 100644
--- a/mysql-test/main/long_unique_big.result
+++ b/mysql-test/main/long_unique_big.result
@@ -17,10 +17,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`c`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 c A NULL NULL NULL YES HASH NO
insert into t1 values(concat(repeat('sachin',10000000),'1'),concat(repeat('sachin',10000000),'1'),
concat(repeat('sachin',10000000),'1'));
insert into t1 values(concat(repeat('sachin',10000000),'2'),concat(repeat('sachin',10000000),'2'),
diff --git a/mysql-test/main/long_unique_bugs.result b/mysql-test/main/long_unique_bugs.result
index 2cb54e0acff..283ea870a5f 100644
--- a/mysql-test/main/long_unique_bugs.result
+++ b/mysql-test/main/long_unique_bugs.result
@@ -109,6 +109,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignored NO
insert into t1 values(1,1);
ERROR 23000: Duplicate entry '1' for key 'a'
DROP TABLE t1;
@@ -177,6 +178,7 @@ Null
Index_type BTREE
Comment
Index_comment
+Ignored NO
ALTER TABLE t1 ADD INDEX (pk);
DROP TABLE t1;
#
@@ -348,7 +350,7 @@ DROP TABLE t1, t2;
# MDEV-18791 Wrong error upon creating Aria table with long index on BLOB
#
CREATE TABLE t1 (a TEXT, UNIQUE(a)) ENGINE=Aria;
-ERROR 42000: Specified key was too long; max key length is 2000 bytes
+ERROR 42000: Specified key was too long; max key length is 2300 bytes
#
# MDEV-20001 Potential dangerous regression: INSERT INTO >=100 rows fail for myisam table with HASH indexes
#
@@ -370,14 +372,14 @@ SET binlog_row_image= FULL;
#
CREATE TABLE t1 (a int, b VARCHAR(1000), UNIQUE (a,b)) ENGINE=MyISAM;
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
CREATE TABLE t2 (a varchar(900), b VARCHAR(900), UNIQUE (a,b)) ENGINE=MyISAM;
show index from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 a 1 a A NULL NULL NULL YES HASH
-t2 0 a 2 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 a 1 a A NULL NULL NULL YES HASH NO
+t2 0 a 2 b A NULL NULL NULL YES HASH NO
DROP TABLE t1,t2;
#
# MDEV-26453 Assertion `0' failed in row_upd_sec_index_entry & corruption
diff --git a/mysql-test/main/long_unique_update.result b/mysql-test/main/long_unique_update.result
index 309b36874f8..acc872305aa 100644
--- a/mysql-test/main/long_unique_update.result
+++ b/mysql-test/main/long_unique_update.result
@@ -24,6 +24,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignored NO
insert into t1 values(1),(2),(3),(4),(5);
select * from t1;
a
@@ -69,10 +70,10 @@ drop table t1;
#test 2;
create table t1 (a int primary key, b blob unique , c int unique );
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 c 1 c A NULL NULL NULL YES BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 c 1 c A NULL NULL NULL YES BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7);
select * from t1 limit 3;
a b c
@@ -129,10 +130,10 @@ drop table t1;
#test 3;
create table t1 (a blob unique, b blob unique , c blob unique);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7);
select * from t1 limit 3;
a b c
@@ -226,21 +227,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`,`b`,`c`,`d`,`e`,`f`,`g`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 b_2 1 b A NULL NULL NULL YES BTREE
-t1 0 b_2 2 f A NULL NULL NULL YES BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 c A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 g A NULL NULL NULL YES HASH
-t1 0 a 1 a A NULL NULL NULL HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 a 4 d A NULL NULL NULL YES HASH
-t1 0 a 5 e A NULL NULL NULL YES HASH
-t1 0 a 6 f A NULL NULL NULL YES HASH
-t1 0 a 7 g A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 b_2 1 b A NULL NULL NULL YES BTREE NO
+t1 0 b_2 2 f A NULL NULL NULL YES BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 c A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 g A NULL NULL NULL YES HASH NO
+t1 0 a 1 a A NULL NULL NULL HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 a 4 d A NULL NULL NULL YES HASH NO
+t1 0 a 5 e A NULL NULL NULL YES HASH NO
+t1 0 a 6 f A NULL NULL NULL YES HASH NO
+t1 0 a 7 g A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1,1,1,1,1),(2,2,2,2,2,2,2),(3,3,3,3,3,3,3),(4,4,4,4,4,4,4),
(5,5,5,5,5,5,5),(6,6,6,6,6,6,6),(7,7,7,7,7,7,7),(8,8,8,8,8,8,8),(9,9,9,9,9,9,9);
select * from t1 limit 3;
diff --git a/mysql-test/main/long_unique_using_hash.result b/mysql-test/main/long_unique_using_hash.result
index 987e11294ec..619b0f5baa5 100644
--- a/mysql-test/main/long_unique_using_hash.result
+++ b/mysql-test/main/long_unique_using_hash.result
@@ -13,6 +13,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignored NO
drop table t1;
create table t1(a blob , unique(a) using btree);
ERROR 42000: Specified key was too long; max key length is 1000 bytes
@@ -31,23 +32,24 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignored NO
drop table t1;
create table t1(a int ,b int , c int, unique(a, b, c) using hash);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1);
insert into t1 values(1,1,1);
ERROR 23000: Duplicate entry '1-1-1' for key 'a'
drop table t1;
create table t1(a int ,b int , c int, unique(a, b, c) using hash) engine=memory;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a NULL NULL NULL NULL YES HASH
-t1 0 a 2 b NULL NULL NULL NULL YES HASH
-t1 0 a 3 c NULL 0 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 a 1 a NULL NULL NULL NULL YES HASH NO
+t1 0 a 2 b NULL NULL NULL NULL YES HASH NO
+t1 0 a 3 c NULL 0 NULL NULL YES HASH NO
insert into t1 values(1,1,1);
insert into t1 values(1,1,1);
ERROR 23000: Duplicate entry '1-1-1' for key 'a'
diff --git a/mysql-test/main/lowercase_fs_off.result b/mysql-test/main/lowercase_fs_off.result
index df74f7fe22d..98b7a8c7c38 100644
--- a/mysql-test/main/lowercase_fs_off.result
+++ b/mysql-test/main/lowercase_fs_off.result
@@ -137,6 +137,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -147,6 +247,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/lowercase_fs_off.test b/mysql-test/main/lowercase_fs_off.test
index 879a1eabc25..ab46d2ac650 100644
--- a/mysql-test/main/lowercase_fs_off.test
+++ b/mysql-test/main/lowercase_fs_off.test
@@ -4,6 +4,7 @@
#
-- source include/have_case_sensitive_file_system.inc
-- source include/not_embedded.inc
+-- source include/have_perfschema.inc
set GLOBAL sql_mode="";
set LOCAL sql_mode="";
diff --git a/mysql-test/main/lowercase_table5.result b/mysql-test/main/lowercase_table5.result
index 7704e1fa658..f2b5bb0cf2b 100644
--- a/mysql-test/main/lowercase_table5.result
+++ b/mysql-test/main/lowercase_table5.result
@@ -1,13 +1,13 @@
CREATE DATABASE mysql_TEST CHARACTER SET utf8;
SHOW CREATE DATABASE mysql_TEST;
Database Create Database
-mysql_TEST CREATE DATABASE `mysql_TEST` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+mysql_TEST CREATE DATABASE `mysql_TEST` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
CREATE DATABASE mysql_test CHARACTER SET latin2;
SHOW CREATE DATABASE mysql_test;
Database Create Database
mysql_test CREATE DATABASE `mysql_test` /*!40100 DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci */
SHOW CREATE DATABASE mysql_TEST;
Database Create Database
-mysql_TEST CREATE DATABASE `mysql_TEST` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+mysql_TEST CREATE DATABASE `mysql_TEST` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
DROP DATABASE mysql_test;
DROP DATABASE mysql_TEST;
diff --git a/mysql-test/main/merge.result b/mysql-test/main/merge.result
index 3761ca2c150..1e671e2504f 100644
--- a/mysql-test/main/merge.result
+++ b/mysql-test/main/merge.result
@@ -760,10 +760,10 @@ a b c
1 1 1
1 1 0
show index from t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a 1 a A NULL NULL NULL YES BTREE
-t3 1 a 2 b A NULL NULL NULL YES BTREE
-t3 1 a 3 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t3 1 a 1 a A NULL NULL NULL YES BTREE NO
+t3 1 a 2 b A NULL NULL NULL YES BTREE NO
+t3 1 a 3 c A NULL NULL NULL YES BTREE NO
drop table t1, t2, t3;
CREATE TABLE t1 ( a INT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10), UNIQUE (b) )
ENGINE=MyISAM;
diff --git a/mysql-test/main/merge.test b/mysql-test/main/merge.test
index 888b41b24bd..99cce370beb 100644
--- a/mysql-test/main/merge.test
+++ b/mysql-test/main/merge.test
@@ -2200,8 +2200,10 @@ DROP TABLE tm1, t1;
CREATE TABLE t1 (c1 INT) ENGINE=MyISAM;
CREATE TABLE tm1 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1)
INSERT_METHOD=LAST;
+--enable_prepare_warnings
CREATE TRIGGER tm1_ai AFTER INSERT ON tm1
FOR EACH ROW SELECT max(c1) FROM t1 INTO @var;
+--disable_prepare_warnings
LOCK TABLE tm1 WRITE, t1 WRITE;
INSERT INTO tm1 VALUES (1);
SELECT * FROM tm1;
@@ -2223,8 +2225,10 @@ CREATE TABLE t4 (c1 INT) ENGINE=MyISAM;
CREATE TABLE t5 (c1 INT) ENGINE=MyISAM;
CREATE TABLE tm1 (c1 INT) ENGINE=MRG_MYISAM UNION=(t1,t2,t3,t4,t5)
INSERT_METHOD=LAST;
+--enable_prepare_warnings
CREATE TRIGGER t2_au AFTER UPDATE ON t2
FOR EACH ROW SELECT MAX(c1) FROM t1 INTO @var;
+--disable_prepare_warnings
CREATE FUNCTION f1() RETURNS INT
RETURN (SELECT MAX(c1) FROM t4);
LOCK TABLE tm1 WRITE, t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE, t5 WRITE;
diff --git a/mysql-test/main/mix2_myisam.result b/mysql-test/main/mix2_myisam.result
index edd9da676c6..842d5bcfb94 100644
--- a/mysql-test/main/mix2_myisam.result
+++ b/mysql-test/main/mix2_myisam.result
@@ -170,10 +170,10 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A # NULL NULL BTREE
-t1 1 parent_id 1 parent_id A # NULL NULL BTREE
-t1 1 level 1 level A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 id A # NULL NULL BTREE NO
+t1 1 parent_id 1 parent_id A # NULL NULL BTREE NO
+t1 1 level 1 level A # NULL NULL BTREE NO
drop table t1;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
@@ -214,8 +214,8 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 skr 1 a A # NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 skr 1 a A # NULL NULL YES BTREE NO
drop table t1;
create table t1 (a int,b varchar(20),key(a)) engine=MyISAM;
insert into t1 values (1,""), (2,"testing");
@@ -261,13 +261,13 @@ key(a),primary key(a,b), unique(c),key(a),unique(b)) ENGINE = MyISAM;
Warnings:
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
-t1 0 PRIMARY 2 b A # NULL NULL BTREE
-t1 0 c 1 c A # NULL NULL BTREE
-t1 0 b 1 b A # NULL NULL BTREE
-t1 1 a 1 a A # NULL NULL BTREE
-t1 1 a_2 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
+t1 0 PRIMARY 2 b A # NULL NULL BTREE NO
+t1 0 c 1 c A # NULL NULL BTREE NO
+t1 0 b 1 b A # NULL NULL BTREE NO
+t1 1 a 1 a A # NULL NULL BTREE NO
+t1 1 a_2 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (col1 int not null, col2 char(4) not null, primary key(col1)) ENGINE = MEMORY;
alter table t1 engine=MyISAM;
@@ -639,8 +639,8 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (i int, j int ) ENGINE=MyISAM;
insert into t1 values (1,2);
@@ -1957,7 +1957,7 @@ create table t1 (v char(10) character set utf8);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `v` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `v` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (v varchar(10), c char(10)) row_format=fixed;
@@ -2009,7 +2009,7 @@ Note 1246 Converting column 'v' from VARCHAR to TEXT
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `v` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `v` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
set default_storage_engine=MEMORY;
diff --git a/mysql-test/main/mrr_icp_extra.result b/mysql-test/main/mrr_icp_extra.result
index 0fb86bb864c..8f6ee88acc6 100644
--- a/mysql-test/main/mrr_icp_extra.result
+++ b/mysql-test/main/mrr_icp_extra.result
@@ -758,7 +758,7 @@ create table t1 (v char(10) character set utf8);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `v` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `v` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (v varchar(10), c char(10)) row_format=fixed;
diff --git a/mysql-test/main/myisam.result b/mysql-test/main/myisam.result
index 6eff563f82f..1b6a5cba915 100644
--- a/mysql-test/main/myisam.result
+++ b/mysql-test/main/myisam.result
@@ -40,16 +40,16 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status Table is already up to date
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
drop table t1;
create table t1 (a int not null, b int not null, c int not null, primary key (a),key(b)) engine=myisam;
insert into t1 values (3,3,3),(1,1,1),(2,2,2),(4,4,4);
@@ -339,13 +339,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 5 NULL NULL YES BTREE
-t1 1 c 1 c A 5 NULL NULL YES BTREE
-t1 1 a 1 a A 1 NULL NULL BTREE
-t1 1 a 2 b A 5 NULL NULL YES BTREE
-t1 1 c_2 1 c A 5 NULL NULL YES BTREE
-t1 1 c_2 2 a A 5 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A 5 NULL NULL YES BTREE NO
+t1 1 c 1 c A 5 NULL NULL YES BTREE NO
+t1 1 a 1 a A 1 NULL NULL BTREE NO
+t1 1 a 2 b A 5 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 5 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 5 NULL NULL BTREE NO
explain select * from t1,t2 where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL a NULL NULL NULL 2
@@ -363,13 +363,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 10 NULL NULL YES BTREE
-t1 1 c 1 c A 10 NULL NULL YES BTREE
-t1 1 a 1 a A 10 NULL NULL BTREE
-t1 1 a 2 b A 10 NULL NULL YES BTREE
-t1 1 c_2 1 c A 10 NULL NULL YES BTREE
-t1 1 c_2 2 a A 10 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A 10 NULL NULL YES BTREE NO
+t1 1 c 1 c A 10 NULL NULL YES BTREE NO
+t1 1 a 1 a A 10 NULL NULL BTREE NO
+t1 1 a 2 b A 10 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 10 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 10 NULL NULL BTREE NO
explain select * from t1,t2 where t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL b NULL NULL NULL 2 Using where
@@ -379,13 +379,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 5 NULL NULL YES BTREE
-t1 1 c 1 c A 5 NULL NULL YES BTREE
-t1 1 a 1 a A 1 NULL NULL BTREE
-t1 1 a 2 b A 5 NULL NULL YES BTREE
-t1 1 c_2 1 c A 5 NULL NULL YES BTREE
-t1 1 c_2 2 a A 5 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 b 1 b A 5 NULL NULL YES BTREE NO
+t1 1 c 1 c A 5 NULL NULL YES BTREE NO
+t1 1 a 1 a A 1 NULL NULL BTREE NO
+t1 1 a 2 b A 5 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 5 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 5 NULL NULL BTREE NO
explain select * from t1,t2 force index(c) where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
@@ -613,29 +613,29 @@ test.t1 2924214226
drop table t1,t2;
create table t1 (a int, key (a));
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
create table t2 (a int);
set @@rand_seed1=31415926,@@rand_seed2=2718281828;
insert t1 select * from t2;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 1000 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 1000 NULL NULL YES BTREE NO
alter table t1 engine=heap;
alter table t1 disable keys;
Warnings:
Note 1031 Storage engine MEMORY of the table `test`.`t1` doesn't have this option
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL 500 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a NULL 500 NULL NULL YES HASH NO
drop table t1,t2;
create table t1 ( a tinytext, b char(1), index idx (a(1),b) );
insert into t1 values (null,''), (null,'');
@@ -679,16 +679,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
set myisam_stats_method=nulls_equal;
set @save_use_stat_tables = @@use_stat_tables;
set @@use_stat_tables = COMPLEMENTARY;
@@ -702,16 +702,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
set @@use_stat_tables = @save_use_stat_tables;
set myisam_stats_method=DEFAULT;
show variables like 'myisam_stats_method';
@@ -724,16 +724,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
drop table t1;
set myisam_stats_method=nulls_ignored;
show variables like 'myisam_stats_method';
@@ -754,22 +754,22 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
-t1 1 a 2 b A 4 NULL NULL YES BTREE
-t1 1 a 3 c A 4 NULL NULL YES BTREE
-t1 1 a 4 d A 4 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
+t1 1 a 2 b A 4 NULL NULL YES BTREE NO
+t1 1 a 3 c A 4 NULL NULL YES BTREE NO
+t1 1 a 4 d A 4 NULL NULL YES BTREE NO
delete from t1;
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 0 NULL NULL YES BTREE
-t1 1 a 2 b A 0 NULL NULL YES BTREE
-t1 1 a 3 c A 0 NULL NULL YES BTREE
-t1 1 a 4 d A 0 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 0 NULL NULL YES BTREE NO
+t1 1 a 2 b A 0 NULL NULL YES BTREE NO
+t1 1 a 3 c A 0 NULL NULL YES BTREE NO
+t1 1 a 4 d A 0 NULL NULL YES BTREE NO
set myisam_stats_method=DEFAULT;
drop table t1;
set @@use_stat_tables = @save_use_stat_tables;
@@ -1673,7 +1673,7 @@ create table t1 (v char(10) character set utf8);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `v` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `v` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (v varchar(10), c char(10)) row_format=fixed;
@@ -1725,7 +1725,7 @@ Note 1246 Converting column 'v' from VARCHAR to TEXT
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `v` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `v` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
set statement sql_mode='' for
@@ -1815,13 +1815,13 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
alter table t1 disable keys;
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
drop table t1;
create table t1 (c1 int) engine=myisam pack_keys=0;
create table t2 (c1 int) engine=myisam pack_keys=1;
@@ -2403,7 +2403,7 @@ KEY (c2)
MyISAM file: MYSQLD_DATADIR/test/t1
Record format: Packed
-Character set: utf8_general_ci (33)
+Character set: utf8mb3_general_ci (33)
Data records: 0 Deleted blocks: 0
Recordlength: 94
@@ -2630,7 +2630,7 @@ End of 5.1 tests
# even if myisam-recover is OFF
#
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
call mtr.add_suppression(" '\..test.t1'");
# Test that we can exchange a crashed partition with a table
SELECT @@global.myisam_recover_options;
@@ -2644,8 +2644,8 @@ FLUSH TABLES;
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check warning 1 client is using or hasn't closed the table properly
-test.t1 check error Size of indexfile is: 1024 Should be: 2048
-test.t1 check warning Size of datafile is: 14 Should be: 7
+test.t1 check error Size of indexfile is: 1024 Should be: 2048
+test.t1 check warning Size of datafile is: 14 Should be: 7
test.t1 check error Corrupt
# Alter table should report error and not auto-repair the table.
ALTER TABLE t1 ENGINE = MyISAM;
@@ -2654,8 +2654,8 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check warning Table is marked as crashed
test.t1 check warning 1 client is using or hasn't closed the table properly
-test.t1 check error Size of indexfile is: 1024 Should be: 2048
-test.t1 check warning Size of datafile is: 14 Should be: 7
+test.t1 check error Size of indexfile is: 1024 Should be: 2048
+test.t1 check warning Size of datafile is: 14 Should be: 7
test.t1 check error Corrupt
DROP TABLE t1;
#
diff --git a/mysql-test/main/myisam.test b/mysql-test/main/myisam.test
index 4dc02c35a18..58d094d7d08 100644
--- a/mysql-test/main/myisam.test
+++ b/mysql-test/main/myisam.test
@@ -1759,7 +1759,7 @@ DROP TABLE t1;
--echo #
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
call mtr.add_suppression(" '\..test.t1'");
let $MYSQLD_DATADIR = `SELECT @@datadir`;
diff --git a/mysql-test/main/myisam_crash_before_flush_keys.result b/mysql-test/main/myisam_crash_before_flush_keys.result
index 7d929ffb644..5b501241a2c 100644
--- a/mysql-test/main/myisam_crash_before_flush_keys.result
+++ b/mysql-test/main/myisam_crash_before_flush_keys.result
@@ -4,7 +4,7 @@
# Don't test this under valgrind, memory leaks will occur
# Binary must be compiled with debug for crash to occur
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
flush tables;
SET GLOBAL delay_key_write=ALL;
CREATE TABLE t1(a INT,
@@ -17,7 +17,7 @@ SET SESSION debug_dbug="d,crash_before_flush_keys";
# Write file to make mysql-test-run.pl expect crash
# Run the crashing query
FLUSH TABLE t1;
-ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to server during query
# Write file to make mysql-test-run.pl start the server
# Turn on reconnect
# Call script that will poll the server waiting for
@@ -25,6 +25,6 @@ ERROR HY000: Lost connection to MySQL server during query
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check warning 1 client is using or hasn't closed the table properly
-test.t1 check error Size of indexfile is: 1024 Should be: 3072
+test.t1 check error Size of indexfile is: 1024 Should be: 3072
test.t1 check error Corrupt
DROP TABLE t1;
diff --git a/mysql-test/main/myisam_crash_before_flush_keys.test b/mysql-test/main/myisam_crash_before_flush_keys.test
index 8df81f73ec0..791e43b0c9b 100644
--- a/mysql-test/main/myisam_crash_before_flush_keys.test
+++ b/mysql-test/main/myisam_crash_before_flush_keys.test
@@ -9,7 +9,7 @@
--source include/have_debug.inc
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
flush tables;
# Avoid CrashReporter popup on Mac
--source include/not_crashrep.inc
diff --git a/mysql-test/main/myisam_debug.test b/mysql-test/main/myisam_debug.test
index fcb134c0400..2659a3f9347 100644
--- a/mysql-test/main/myisam_debug.test
+++ b/mysql-test/main/myisam_debug.test
@@ -48,10 +48,12 @@ let $wait_condition=
INFO = "INSERT INTO t1(id) SELECT id FROM t2";
--source include/wait_condition.inc
+--enable_prepare_warnings
SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE STATE = 'wait_in_enable_indexes' AND
INFO = "INSERT INTO t1(id) SELECT id FROM t2"
INTO @thread_id;
+--disable_prepare_warnings
KILL QUERY @thread_id;
CHECK TABLE t1;
diff --git a/mysql-test/main/myisam_debug_keys.test b/mysql-test/main/myisam_debug_keys.test
index bf028bb8e52..73d68637b29 100644
--- a/mysql-test/main/myisam_debug_keys.test
+++ b/mysql-test/main/myisam_debug_keys.test
@@ -10,6 +10,7 @@ CREATE TABLE types (
type TEXT NOT NULL,
prefix_length INT NOT NULL
);
+--disable_ps_protocol
INSERT INTO types (type, prefix_length) VALUES
('INT', 0),
('BIGINT', 0),
@@ -29,6 +30,7 @@ INSERT INTO types (type, prefix_length) VALUES
('TEXT', 12),
('TEXT', 16),
('TEXT', 100);
+--enable_ps_protocol
DELIMITER $$;
BEGIN NOT ATOMIC
DECLARE create2_template TEXT
diff --git a/mysql-test/main/myisam_recover.result b/mysql-test/main/myisam_recover.result
index da96682186c..87fe754d072 100644
--- a/mysql-test/main/myisam_recover.result
+++ b/mysql-test/main/myisam_recover.result
@@ -17,7 +17,7 @@ connection con1;
# Minimal values.
#
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
call mtr.add_suppression(" '\..test.t1'");
set @save_table_open_cache=@@table_open_cache;
set global table_open_cache=256;
@@ -69,9 +69,9 @@ flush table t1;
# check table is needed to mark the table as crashed.
check table t1;
Table Op Msg_type Msg_text
-test.t1 check warning Size of datafile is: 42 Should be: 21
-test.t1 check error Record-count is not ok; is 6 Should be: 3
-test.t1 check warning Found 6 key parts. Should be: 3
+test.t1 check warning Size of datafile is: 42 Should be: 21
+test.t1 check error Record-count is not ok; is 6 Should be: 3
+test.t1 check warning Found 6 key parts. Should be: 3
test.t1 check error Corrupt
#
# At this point we have a merge table t1_mrg pointing to t1,
@@ -122,9 +122,9 @@ flush table t1;
# Check table is needed to mark the table as crashed.
check table t1;
Table Op Msg_type Msg_text
-test.t1 check warning Size of datafile is: 14 Should be: 7
-test.t1 check error Record-count is not ok; is 2 Should be: 1
-test.t1 check warning Found 2 key parts. Should be: 1
+test.t1 check warning Size of datafile is: 14 Should be: 7
+test.t1 check error Record-count is not ok; is 2 Should be: 1
+test.t1 check warning Found 2 key parts. Should be: 1
test.t1 check error Corrupt
# At this point we have a corrupt t1
set autocommit = 0;
diff --git a/mysql-test/main/myisam_recover.test b/mysql-test/main/myisam_recover.test
index 9056b219148..6fe250197d5 100644
--- a/mysql-test/main/myisam_recover.test
+++ b/mysql-test/main/myisam_recover.test
@@ -22,7 +22,7 @@ connection con1;
--echo #
call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
-call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression("MariaDB thread id .*, query id .* localhost.*root Checking table");
call mtr.add_suppression(" '\..test.t1'");
set @save_table_open_cache=@@table_open_cache;
diff --git a/mysql-test/main/mysql.result b/mysql-test/main/mysql.result
index 48e0a9335ff..5363bcd12b2 100644
--- a/mysql-test/main/mysql.result
+++ b/mysql-test/main/mysql.result
@@ -172,14 +172,14 @@ ERROR 1049 (42000) at line 1: Unknown database 'invalid'
ERROR 1049 (42000) at line 1: Unknown database 'invalid'
Test connect with dbname + hostname
Test connect with dbname + _invalid_ hostname
-ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
-ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
+ERROR 2005 (HY000) at line 1: Unknown server host 'invalid_hostname' (errno)
+ERROR 2005 (HY000) at line 1: Unknown server host 'invalid_hostname' (errno)
The commands reported in the bug report
-ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyril has found a bug :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
+ERROR 2005 (HY000) at line 1: Unknown server host 'cyril has found a bug :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
Too long dbname
ERROR 1102 (42000) at line 1: Incorrect database name 'test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...'
Too long hostname
-ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
+ERROR 2005 (HY000) at line 1: Unknown server host 'cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
1
1
ERROR at line 1: DELIMITER cannot contain a backslash character
@@ -208,7 +208,7 @@ COUNT (*)
1
COUNT (*)
1
-ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
+ERROR 2005 (HY000) at line 1: Unknown server host 'invalid_hostname' (errno)
End of 5.0 tests
WARNING: --server-arg option not supported in this configuration.
*************************** 1. row ***************************
@@ -538,7 +538,7 @@ a
#
# End of 10.1 tests
#
-ERROR 1300 (HY000) at line 2: Invalid utf8 character string: 'test\xF0\x9F\x98\x81'
+ERROR 1300 (HY000) at line 2: Invalid utf8mb3 character string: 'test\xF0\x9F\x98\x81'
set GLOBAL sql_mode=default;
End of tests
diff --git a/mysql-test/main/mysql5613mysql.result b/mysql-test/main/mysql5613mysql.result
index d6b5772b990..1a306d8dd86 100644
--- a/mysql-test/main/mysql5613mysql.result
+++ b/mysql-test/main/mysql5613mysql.result
@@ -11,9 +11,9 @@ columns_priv CREATE TABLE `columns_priv` (
`Table_name` char(64) NOT NULL DEFAULT '',
`Column_name` char(64) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Column privileges'
SELECT * FROM columns_priv LIMIT 0;
Host Db User Table_name Column_name Timestamp Column_priv
DROP TABLE columns_priv;
@@ -23,38 +23,38 @@ db CREATE TABLE `db` (
`Host` char(60) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`User` char(16) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Database privileges'
SELECT * FROM db LIMIT 0;
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv
DROP TABLE db;
SHOW CREATE TABLE event;
Table Create Table
event CREATE TABLE `event` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` char(77) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
@@ -66,15 +66,15 @@ event CREATE TABLE `event` (
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
- `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `comment` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM',
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Events'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Events'
SELECT * FROM event LIMIT 0;
db name body definer execute_at interval_value interval_field created modified last_executed starts ends status on_completion sql_mode comment originator time_zone character_set_client collation_connection db_collation body_utf8
DROP TABLE event;
@@ -84,9 +84,9 @@ func CREATE TABLE `func` (
`name` char(64) NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT 0,
`dl` char(128) NOT NULL DEFAULT '',
- `type` enum('function','aggregate') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `type` enum('function','aggregate') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
PRIMARY KEY (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='User defined functions'
SELECT * FROM func LIMIT 0;
name ret dl type
DROP TABLE func;
@@ -96,14 +96,14 @@ plugin CREATE TABLE `plugin` (
`name` varchar(64) NOT NULL DEFAULT '',
`dl` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='MySQL plugins'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='MySQL plugins'
SELECT * FROM plugin LIMIT 0;
name dl
DROP TABLE plugin;
SHOW CREATE TABLE proc;
Table Create Table
proc CREATE TABLE `proc` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
@@ -114,17 +114,17 @@ proc CREATE TABLE `proc` (
`param_list` blob NOT NULL,
`returns` longblob NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` char(77) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
- `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`,`type`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Stored Procedures'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Stored Procedures'
SELECT * FROM proc LIMIT 0;
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8
DROP TABLE proc;
@@ -134,14 +134,14 @@ procs_priv CREATE TABLE `procs_priv` (
`Host` char(60) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
`User` char(16) NOT NULL DEFAULT '',
- `Routine_name` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE') NOT NULL,
`Grantor` char(77) NOT NULL DEFAULT '',
- `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Procedure privileges'
SELECT * FROM procs_priv LIMIT 0;
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
DROP TABLE procs_priv;
@@ -157,7 +157,7 @@ proxies_priv CREATE TABLE `proxies_priv` (
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
KEY `Grantor` (`Grantor`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='User proxy privileges'
SELECT * FROM proxies_priv LIMIT 0;
Host User Proxied_host Proxied_user With_grant Grantor Timestamp
DROP TABLE proxies_priv;
@@ -174,7 +174,7 @@ servers CREATE TABLE `servers` (
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='MySQL Foreign Servers table'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='MySQL Foreign Servers table'
SELECT * FROM servers LIMIT 0;
Server_name Host Db Username Password Port Socket Wrapper Owner
DROP TABLE servers;
@@ -187,11 +187,11 @@ tables_priv CREATE TABLE `tables_priv` (
`Table_name` char(64) NOT NULL DEFAULT '',
`Grantor` char(77) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Table privileges'
SELECT * FROM tables_priv LIMIT 0;
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
DROP TABLE tables_priv;
@@ -201,7 +201,7 @@ time_zone_leap_second CREATE TABLE `time_zone_leap_second` (
`Transition_time` bigint(20) NOT NULL,
`Correction` int(11) NOT NULL,
PRIMARY KEY (`Transition_time`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Leap seconds information for time zones'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Leap seconds information for time zones'
SELECT * FROM time_zone_leap_second LIMIT 0;
Transition_time Correction
DROP TABLE time_zone_leap_second;
@@ -211,7 +211,7 @@ time_zone CREATE TABLE `time_zone` (
`Time_zone_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Use_leap_seconds` enum('Y','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`Time_zone_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Time zones'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Time zones'
SELECT * FROM time_zone LIMIT 0;
Time_zone_id Use_leap_seconds
DROP TABLE time_zone;
@@ -221,7 +221,7 @@ time_zone_name CREATE TABLE `time_zone_name` (
`Name` char(64) NOT NULL,
`Time_zone_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Time zone names'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Time zone names'
SELECT * FROM time_zone_name LIMIT 0;
Name Time_zone_id
DROP TABLE time_zone_name;
@@ -232,7 +232,7 @@ time_zone_transition CREATE TABLE `time_zone_transition` (
`Transition_time` bigint(20) NOT NULL,
`Transition_type_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`Time_zone_id`,`Transition_time`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Time zone transitions'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Time zone transitions'
SELECT * FROM time_zone_transition LIMIT 0;
Time_zone_id Transition_time Transition_type_id
DROP TABLE time_zone_transition;
@@ -245,7 +245,7 @@ time_zone_transition_type CREATE TABLE `time_zone_transition_type` (
`Is_DST` tinyint(3) unsigned NOT NULL DEFAULT 0,
`Abbreviation` char(8) NOT NULL DEFAULT '',
PRIMARY KEY (`Time_zone_id`,`Transition_type_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Time zone transition types'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Time zone transition types'
SELECT * FROM time_zone_transition_type LIMIT 0;
Time_zone_id Transition_type_id Offset Is_DST Abbreviation
DROP TABLE time_zone_transition_type;
@@ -255,36 +255,36 @@ user CREATE TABLE `user` (
`Host` char(60) NOT NULL DEFAULT '',
`User` char(16) NOT NULL DEFAULT '',
`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Reload_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Shutdown_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Process_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `File_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_db_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Super_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Repl_client_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_user_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Reload_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Shutdown_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Process_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `File_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_db_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Super_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Repl_client_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_user_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`ssl_cipher` blob NOT NULL,
`x509_issuer` blob NOT NULL,
`x509_subject` blob NOT NULL,
@@ -294,9 +294,9 @@ user CREATE TABLE `user` (
`max_user_connections` int(11) unsigned NOT NULL DEFAULT 0,
`plugin` char(64) DEFAULT '',
`authentication_string` text DEFAULT NULL,
- `password_expired` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `password_expired` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`User`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Users and global privileges'
SELECT * FROM user LIMIT 0;
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired
DROP TABLE user;
diff --git a/mysql-test/main/mysql_client_test.test b/mysql-test/main/mysql_client_test.test
index 9fb7bcd81c9..bcb246a8a06 100644
--- a/mysql-test/main/mysql_client_test.test
+++ b/mysql-test/main/mysql_client_test.test
@@ -1,7 +1,5 @@
# This test should work in embedded server after we fix mysqltest
-- source include/not_embedded.inc
-# need to have the dynamic loading turned on for the client plugin tests
---source include/have_plugin_auth.inc
# Run test with default character set
--source include/default_charset.inc
diff --git a/mysql-test/main/mysql_install_db_win.result b/mysql-test/main/mysql_install_db_win.result
index 31336847a38..2440ff351ea 100644
--- a/mysql-test/main/mysql_install_db_win.result
+++ b/mysql-test/main/mysql_install_db_win.result
@@ -1,12 +1,12 @@
Running bootstrap
+Creating my.ini file
Removing default user
Allowing remote access for user root
Setting root password
-Creating my.ini file
Creation of the database was successful
# Kill the server
# restart: --datadir=MYSQLTEST_VARDIR/tmp/ddir --loose-innodb
-connect root,localhost,root,foo;
+connect root,localhost,root,foo,mysql;
SELECT @@datadir;
@@datadir
DATADIR/
@@ -14,4 +14,18 @@ DATADIR/
1
FOUND 1 /is not empty. Only new or empty existing directories are accepted for --datadir/ in install.log
connection default;
+[mysqld]
+long_query_time=15.000000
+#slow_query_log_file=l:/errorlog/mariadb.slow.log
+slow_query_log_file=BASEDIR/data/slow_query_log_01.log
+datadir=BASEDIR/data
+server-id=1
+port=3307
+#tmpdir=C:/mysql_tmpdir
+tmpdir=BASEDIR/temp
+innodb_data_file_path=ibdata1:10M;ibdata2:10M:autoextend
+innodb_log_group_home_dir=BASEDIR/data
+skip-name-resolve
+[client]
+port=3307
# restart
diff --git a/mysql-test/main/mysql_install_db_win.test b/mysql-test/main/mysql_install_db_win.test
index 3f0256e860e..c400dbf3fb9 100644
--- a/mysql-test/main/mysql_install_db_win.test
+++ b/mysql-test/main/mysql_install_db_win.test
@@ -9,7 +9,7 @@ exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --password=foo -R;
let $restart_parameters=--datadir=$ddir --loose-innodb;
--source include/start_mysqld.inc
-connect root,localhost,root,foo;
+connect (root,localhost,root,foo,mysql);
# Smoke test - check that we're actually using datadir
# we've created (i.e restart_parameters worked)
--replace_result $ddir DATADIR
@@ -42,7 +42,49 @@ remove_file $log;
rmdir $ddir;
+# MDEV-28471 - mysql_install_db.exe fails with --innodb-page-size=64K
+--disable_result_log
+exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --password=foo -R --innodb-page-size=64K --verbose
+--enable_result_log
+rmdir $ddir;
+
+# Tests with config file
let $restart_parameters=;
connection default;
+
+# Test --template option
+let _BASEDIR = $MYSQLTEST_VARDIR/tmp/basedir;
+perl;
+ use autodie;
+ open(IN, '<', "std_data/mysql_install_db_win.ini");
+ open(OUT, '>', "$ENV{MYSQLTEST_VARDIR}/tmp/mysql_install_db_win.ini");
+ while (<IN>) {
+ s/BASEDIR/$ENV{_BASEDIR}/g;
+ print OUT $_;
+ }
+ close IN;
+ close OUT
+EOF
+mkdir $_BASEDIR;
+mkdir $_BASEDIR/temp;
+
+# Run mysql_install_db.exe with config parameter
+--disable_result_log
+exec $MYSQL_INSTALL_DB_EXE -o --port=3307 --config=$MYSQLTEST_VARDIR/tmp/mysql_install_db_win.ini;
+--enable_result_log
+
+# dump the modified config in data directory
+perl;
+ use autodie;
+ open(IN, '<', "$ENV{_BASEDIR}/data/my.ini");
+ while (<IN>) {
+ s/$ENV{_BASEDIR}/BASEDIR/g;
+ # when testing on installation layout, client's plugin
+ # dir is added, but when testing in build dir.
+ print unless $_ =~ /plugin-dir/;
+ }
+ close IN;
+EOF
+rmdir $_BASEDIR;
--source include/start_mysqld.inc
diff --git a/mysql-test/main/mysql_json_mysql_upgrade.result b/mysql-test/main/mysql_json_mysql_upgrade.result
index 9ee8f170b2e..4c4a86f88ee 100644
--- a/mysql-test/main/mysql_json_mysql_upgrade.result
+++ b/mysql-test/main/mysql_json_mysql_upgrade.result
@@ -57,6 +57,106 @@ Phase 2/7: Installing used storage engines... Skipped
installing plugin for MYSQL_JSON data type
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -66,6 +166,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.mysql_json_test Needs upgrade
test.mysql_json_test_big Needs upgrade
diff --git a/mysql-test/main/mysql_json_mysql_upgrade_with_plugin_loaded.result b/mysql-test/main/mysql_json_mysql_upgrade_with_plugin_loaded.result
index ffcc45f34c7..33205e60aea 100644
--- a/mysql-test/main/mysql_json_mysql_upgrade_with_plugin_loaded.result
+++ b/mysql-test/main/mysql_json_mysql_upgrade_with_plugin_loaded.result
@@ -57,6 +57,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -66,6 +166,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.mysql_json_test Needs upgrade
test.mysql_json_test_big Needs upgrade
diff --git a/mysql-test/main/mysql_locale_posix.result b/mysql-test/main/mysql_locale_posix.result
index 72a473bb89e..039e3ea442b 100644
--- a/mysql-test/main/mysql_locale_posix.result
+++ b/mysql-test/main/mysql_locale_posix.result
@@ -33,7 +33,7 @@ Database: ó
utf8
@@character_set_client
-utf8
+utf8mb3
Database: ó
+--------+
| Tables |
diff --git a/mysql-test/main/mysql_not_windows.result b/mysql-test/main/mysql_not_windows.result
index 96210a366a6..644b3a0f4f0 100644
--- a/mysql-test/main/mysql_not_windows.result
+++ b/mysql-test/main/mysql_not_windows.result
@@ -9,5 +9,5 @@ End of tests
2
X
3
-ERROR 1300 (HY000): Invalid utf8 character string: 'test\xF0\x9F\x98\x81 '
+ERROR 1300 (HY000): Invalid utf8mb3 character string: 'test\xF0\x9F\x98\x81 '
ERROR 1300 (HY000): Invalid binary character string: 'test\xF0\x9F\x98\x81 '
diff --git a/mysql-test/main/mysql_tzinfo_to_sql_symlink.result b/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
index a9ada2d6fdb..b6b35e44988 100644
--- a/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
+++ b/mysql-test/main/mysql_tzinfo_to_sql_symlink.result
@@ -1,41 +1,36 @@
-use mysql;
-RENAME TABLE time_zone TO time_zone_orig,
-time_zone_name TO time_zone_name_orig,
-time_zone_transition TO time_zone_transition_orig,
-time_zone_transition_type TO time_zone_transition_type_orig,
-time_zone_leap_second TO time_zone_leap_second_orig;
-CREATE TABLE time_zone LIKE time_zone_orig;
-CREATE TABLE time_zone_name LIKE time_zone_name_orig;
-CREATE TABLE time_zone_transition LIKE time_zone_transition_orig;
-CREATE TABLE time_zone_transition_type LIKE time_zone_transition_type_orig;
-CREATE TABLE time_zone_leap_second LIKE time_zone_leap_second_orig;
+CREATE TABLE time_zone LIKE mysql.time_zone;
+CREATE TABLE time_zone_name LIKE mysql.time_zone_name;
+CREATE TABLE time_zone_transition LIKE mysql.time_zone_transition;
+CREATE TABLE time_zone_transition_type LIKE mysql.time_zone_transition_type;
+CREATE TABLE time_zone_leap_second LIKE mysql.time_zone_leap_second;
#
# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
#
# Verbose run
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=InnoDB;
-ALTER TABLE time_zone_name ENGINE=InnoDB;
-ALTER TABLE time_zone_transition ENGINE=InnoDB;
-ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_name_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_name'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_name ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition_type'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
TRUNCATE TABLE time_zone_transition_type;
-START TRANSACTION;
-ELSE
-TRUNCATE TABLE time_zone;
-TRUNCATE TABLE time_zone_name;
-TRUNCATE TABLE time_zone_transition;
-TRUNCATE TABLE time_zone_transition_type;
-END IF|
-\d ;
+/*M!100602 execute immediate if(@wsrep_cannot_replicate_tz, 'start transaction', 'LOCK TABLES time_zone WRITE,
+ time_zone_leap_second WRITE,
+ time_zone_name WRITE,
+ time_zone_transition WRITE,
+ time_zone_transition_type WRITE')*/;
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
@@ -43,7 +38,7 @@ Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/ignored.tab' as time zone. Sk
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
@@ -51,79 +46,58 @@ Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/ignored.tab' as time zo
Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion.
UNLOCK TABLES;
COMMIT;
-ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=Aria;
-ALTER TABLE time_zone_name ENGINE=Aria;
-ALTER TABLE time_zone_transition ENGINE=Aria, ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ENGINE=Aria, ORDER BY Time_zone_id, Transition_type_id;
-END IF|
-\d ;
-SELECT COUNT(*) FROM time_zone;
-COUNT(*)
-0
-SELECT COUNT(*) FROM time_zone_name;
-COUNT(*)
-0
-SELECT COUNT(*) FROM time_zone_transition;
-COUNT(*)
-0
-SELECT COUNT(*) FROM time_zone_transition_type;
-COUNT(*)
-0
-SELECT COUNT(*) FROM time_zone_leap_second;
-COUNT(*)
-0
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time');
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone ENGINE=', @time_zone_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
+#
+# MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
+#
# Run on zoneinfo directory
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=InnoDB;
-ALTER TABLE time_zone_name ENGINE=InnoDB;
-ALTER TABLE time_zone_transition ENGINE=InnoDB;
-ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_name_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_name'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_name ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition_type'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
TRUNCATE TABLE time_zone_transition_type;
-START TRANSACTION;
-ELSE
-TRUNCATE TABLE time_zone;
-TRUNCATE TABLE time_zone_name;
-TRUNCATE TABLE time_zone_transition;
-TRUNCATE TABLE time_zone_transition_type;
-END IF|
-\d ;
+/*M!100602 execute immediate if(@wsrep_cannot_replicate_tz, 'start transaction', 'LOCK TABLES time_zone WRITE,
+ time_zone_leap_second WRITE,
+ time_zone_name WRITE,
+ time_zone_transition WRITE,
+ time_zone_transition_type WRITE')*/;
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
UNLOCK TABLES;
COMMIT;
-ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=Aria;
-ALTER TABLE time_zone_name ENGINE=Aria;
-ALTER TABLE time_zone_transition ENGINE=Aria, ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ENGINE=Aria, ORDER BY Time_zone_id, Transition_type_id;
-END IF|
-\d ;
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time');
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone ENGINE=', @time_zone_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
2
@@ -142,9 +116,13 @@ COUNT(*)
#
# Run on zoneinfo directory --skip-write-binlog
#
-set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
+SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
-execute immediate @prep1;
+SET @wsrep_cannot_replicate_tz=0;
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -157,21 +135,23 @@ LOCK TABLES time_zone WRITE,
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
UNLOCK TABLES;
COMMIT;
-ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time');
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id');
+SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
+execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
2
@@ -187,6 +167,19 @@ COUNT(*)
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+@wsrep_is_on @wsrep_cannot_replicate_tz @save_wsrep_on @save_sql_log_bin @@SQL_LOG_BIN
+0 0 NULL 1 1
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+FROM information_schema.global_status g
+JOIN baseline b USING (VARIABLE_NAME)
+ORDER BY g.VARIABLE_NAME;
+VARIABLE_NAME diff
+COM_ALTER_TABLE 2
+COM_BEGIN 0
+COM_INSERT 6
+COM_LOCK_TABLES 1
+COM_TRUNCATE 4
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -195,38 +188,34 @@ TRUNCATE TABLE time_zone_leap_second;
#
# Testing with explicit timezonefile
#
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=InnoDB;
-ALTER TABLE time_zone_name ENGINE=InnoDB;
-ALTER TABLE time_zone_transition ENGINE=InnoDB;
-ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
-SELECT 'skip truncate tables';
-START TRANSACTION;
-ELSE
-SELECT 'skip truncate tables';
-END IF|
-\d ;
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_name_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_name'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_name ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition_type'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
+/*M!100602 execute immediate if(@wsrep_cannot_replicate_tz, 'start transaction', 'LOCK TABLES time_zone WRITE,
+ time_zone_leap_second WRITE,
+ time_zone_name WRITE,
+ time_zone_transition WRITE,
+ time_zone_transition_type WRITE')*/;
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
UNLOCK TABLES;
COMMIT;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=Aria;
-ALTER TABLE time_zone_name ENGINE=Aria;
-ALTER TABLE time_zone_transition ENGINE=Aria, ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ENGINE=Aria, ORDER BY Time_zone_id, Transition_type_id;
-END IF|
-\d ;
-skip truncate tables
-skip truncate tables
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone ENGINE=', @time_zone_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
1
@@ -242,6 +231,19 @@ COUNT(*)
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+@wsrep_is_on @wsrep_cannot_replicate_tz @save_wsrep_on @save_sql_log_bin @@SQL_LOG_BIN
+0 0 NULL 1 1
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+FROM information_schema.global_status g
+JOIN baseline b USING (VARIABLE_NAME)
+ORDER BY g.VARIABLE_NAME;
+VARIABLE_NAME diff
+COM_ALTER_TABLE 0
+COM_BEGIN 0
+COM_INSERT 3
+COM_LOCK_TABLES 1
+COM_TRUNCATE 0
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -250,10 +252,13 @@ TRUNCATE TABLE time_zone_leap_second;
#
# Testing with explicit timezonefile --skip-write-binlog
#
-set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
+SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
-execute immediate @prep1;
-SELECT 'skip truncate tables';
+SET @wsrep_cannot_replicate_tz=0;
LOCK TABLES time_zone WRITE,
time_zone_leap_second WRITE,
time_zone_name WRITE,
@@ -262,26 +267,41 @@ LOCK TABLES time_zone WRITE,
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
UNLOCK TABLES;
COMMIT;
+SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
+execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
-0
+1
SELECT COUNT(*) FROM time_zone_name;
COUNT(*)
-0
+1
SELECT COUNT(*) FROM time_zone_transition;
COUNT(*)
0
SELECT COUNT(*) FROM time_zone_transition_type;
COUNT(*)
-0
+1
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+@wsrep_is_on @wsrep_cannot_replicate_tz @save_wsrep_on @save_sql_log_bin @@SQL_LOG_BIN
+0 0 NULL 1 1
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+FROM information_schema.global_status g
+JOIN baseline b USING (VARIABLE_NAME)
+ORDER BY g.VARIABLE_NAME;
+VARIABLE_NAME diff
+COM_ALTER_TABLE 0
+COM_BEGIN 0
+COM_INSERT 3
+COM_LOCK_TABLES 1
+COM_TRUNCATE 0
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -290,46 +310,33 @@ TRUNCATE TABLE time_zone_leap_second;
#
# Testing --leap
#
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=InnoDB;
-ALTER TABLE time_zone_name ENGINE=InnoDB;
-ALTER TABLE time_zone_transition ENGINE=InnoDB;
-ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
-SELECT 'skip truncate tables';
-START TRANSACTION;
-ELSE
-SELECT 'skip truncate tables';
-END IF|
-\d ;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
-END IF|
-\d ;
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_name_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_name'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_name ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition_type'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
+/*M!100602 execute immediate if(@wsrep_cannot_replicate_tz, 'start transaction', 'LOCK TABLES time_zone WRITE,
+ time_zone_leap_second WRITE,
+ time_zone_name WRITE,
+ time_zone_transition WRITE,
+ time_zone_transition_type WRITE')*/;
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_leap_second_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_leap_second'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_leap_second ENGINE=InnoDB', 'do 0');
TRUNCATE TABLE time_zone_leap_second;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone_leap_second ENGINE=Aria;
-END IF|
-\d ;
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_leap_second ENGINE=', @time_zone_leap_second_engine), 'do 0');
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
UNLOCK TABLES;
COMMIT;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=Aria;
-ALTER TABLE time_zone_name ENGINE=Aria;
-ALTER TABLE time_zone_transition ENGINE=Aria, ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ENGINE=Aria, ORDER BY Time_zone_id, Transition_type_id;
-END IF|
-\d ;
-skip truncate tables
-skip truncate tables
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone ENGINE=', @time_zone_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
0
@@ -345,6 +352,19 @@ COUNT(*)
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+@wsrep_is_on @wsrep_cannot_replicate_tz @save_wsrep_on @save_sql_log_bin @@SQL_LOG_BIN
+0 0 NULL 1 1
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+FROM information_schema.global_status g
+JOIN baseline b USING (VARIABLE_NAME)
+ORDER BY g.VARIABLE_NAME;
+VARIABLE_NAME diff
+COM_ALTER_TABLE 1
+COM_BEGIN 0
+COM_INSERT 0
+COM_LOCK_TABLES 1
+COM_TRUNCATE 1
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -353,10 +373,13 @@ TRUNCATE TABLE time_zone_leap_second;
#
# Testing --skip-write-binlog --leap
#
-set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
+SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
-execute immediate @prep1;
-SELECT 'skip truncate tables';
+SET @wsrep_cannot_replicate_tz=0;
LOCK TABLES time_zone WRITE,
time_zone_leap_second WRITE,
time_zone_name WRITE,
@@ -366,8 +389,8 @@ TRUNCATE TABLE time_zone_leap_second;
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
UNLOCK TABLES;
COMMIT;
-skip truncate tables
-skip truncate tables
+SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
+execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
SELECT COUNT(*) FROM time_zone;
COUNT(*)
0
@@ -383,16 +406,32 @@ COUNT(*)
SELECT COUNT(*) FROM time_zone_leap_second;
COUNT(*)
0
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+@wsrep_is_on @wsrep_cannot_replicate_tz @save_wsrep_on @save_sql_log_bin @@SQL_LOG_BIN
+0 0 NULL 1 1
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+FROM information_schema.global_status g
+JOIN baseline b USING (VARIABLE_NAME)
+ORDER BY g.VARIABLE_NAME;
+VARIABLE_NAME diff
+COM_ALTER_TABLE 1
+COM_BEGIN 0
+COM_INSERT 0
+COM_LOCK_TABLES 1
+COM_TRUNCATE 1
#
# MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
#
#
# Testing --skip-write-binlog
#
-set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
+SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
-execute immediate @prep1;
-SELECT 'skip truncate tables';
+SET @wsrep_cannot_replicate_tz=0;
LOCK TABLES time_zone WRITE,
time_zone_leap_second WRITE,
time_zone_name WRITE,
@@ -401,15 +440,20 @@ LOCK TABLES time_zone WRITE,
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
-INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
+INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, `Offset`, Is_DST, Abbreviation) VALUES
(@time_zone_id, 0, 0, 0, 'GMT')
;
UNLOCK TABLES;
COMMIT;
-set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
+SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
+execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_is_on, 'SET @save_wsrep_on=@@WSREP_ON, WSREP_ON=OFF', 'do 0');
+SET @save_sql_log_bin=@@SQL_LOG_BIN;
SET SESSION SQL_LOG_BIN=0;
-execute immediate @prep1;
-SELECT 'skip truncate tables';
+SET @wsrep_cannot_replicate_tz=0;
LOCK TABLES time_zone WRITE,
time_zone_leap_second WRITE,
time_zone_name WRITE,
@@ -419,51 +463,71 @@ TRUNCATE TABLE time_zone_leap_second;
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
UNLOCK TABLES;
COMMIT;
+SET SESSION SQL_LOG_BIN=@save_sql_log_bin;
+execute immediate if(@wsrep_is_on, 'SET SESSION WSREP_ON=@save_wsrep_on', 'do 0');
#
# End of 10.2 tests
#
#
+# MDEV-29347 MariaDB 10.6.8 fails to start when ONLY_FULL_GROUP_BY gets provided
+#
+set sql_mode=only_full_group_by;
+SELECT COUNT(*) FROM time_zone;
+COUNT(*)
+2
+SELECT COUNT(*) FROM time_zone_name;
+COUNT(*)
+2
+SELECT COUNT(*) FROM time_zone_transition;
+COUNT(*)
+0
+SELECT COUNT(*) FROM time_zone_transition_type;
+COUNT(*)
+2
+SELECT COUNT(*) FROM time_zone_leap_second;
+COUNT(*)
+0
+select @@sql_mode;
+@@sql_mode
+ONLY_FULL_GROUP_BY
+set sql_mode=default;
+#
# MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
#
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=InnoDB;
-ALTER TABLE time_zone_name ENGINE=InnoDB;
-ALTER TABLE time_zone_transition ENGINE=InnoDB;
-ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
+set @wsrep_is_on=(select coalesce(sum(SESSION_VALUE='ON'), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_on');
+SET STATEMENT SQL_MODE='' FOR SELECT concat('%', GROUP_CONCAT(OPTION), '%') INTO @replicate_opt FROM (SELECT DISTINCT concat('REPLICATE_', UPPER(ENGINE)) AS OPTION FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME IN ('time_zone', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'time_zone_leap_second') AND ENGINE in ('MyISAM', 'Aria')) AS o ORDER BY OPTION DESC;
+set @wsrep_cannot_replicate_tz=@wsrep_is_on AND (select coalesce(sum(GLOBAL_VALUE NOT LIKE @replicate_opt), 0) from information_schema.SYSTEM_VARIABLES WHERE VARIABLE_NAME='wsrep_mode');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_name_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_name'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_name ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition ENGINE=InnoDB', 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, "select ENGINE into @time_zone_transition_type_engine from information_schema.TABLES where TABLE_SCHEMA=DATABASE() and TABLE_NAME='time_zone_transition_type'", 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, 'ALTER TABLE time_zone_transition_type ENGINE=InnoDB', 'do 0');
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
TRUNCATE TABLE time_zone_transition_type;
-START TRANSACTION;
-ELSE
-TRUNCATE TABLE time_zone;
-TRUNCATE TABLE time_zone_name;
-TRUNCATE TABLE time_zone_transition;
-TRUNCATE TABLE time_zone_transition_type;
-END IF|
-\d ;
+/*M!100602 execute immediate if(@wsrep_cannot_replicate_tz, 'start transaction', 'LOCK TABLES time_zone WRITE,
+ time_zone_leap_second WRITE,
+ time_zone_name WRITE,
+ time_zone_transition WRITE,
+ time_zone_transition_type WRITE')*/;
UNLOCK TABLES;
COMMIT;
-ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
-\d |
-IF (select count(*) from information_schema.global_variables where
-variable_name='wsrep_on' and variable_value='ON') = 1 THEN
-ALTER TABLE time_zone ENGINE=Aria;
-ALTER TABLE time_zone_name ENGINE=Aria;
-ALTER TABLE time_zone_transition ENGINE=Aria, ORDER BY Time_zone_id, Transition_time;
-ALTER TABLE time_zone_transition_type ENGINE=Aria, ORDER BY Time_zone_id, Transition_type_id;
-END IF|
-\d ;
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time');
+execute immediate if(@wsrep_cannot_replicate_tz, 'do 0','ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone ENGINE=', @time_zone_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_name ENGINE=', @time_zone_name_engine), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition ENGINE=', @time_zone_transition_engine, ', ORDER BY Time_zone_id, Transition_time'), 'do 0');
+execute immediate if(@wsrep_cannot_replicate_tz, concat('ALTER TABLE time_zone_transition_type ENGINE=', @time_zone_transition_type_engine, ', ORDER BY Time_zone_id, Transition_type_id'), 'do 0');
+DROP TABLE baseline;
DROP TABLE time_zone;
DROP TABLE time_zone_name;
DROP TABLE time_zone_transition;
DROP TABLE time_zone_transition_type;
DROP TABLE time_zone_leap_second;
-RENAME TABLE time_zone_orig TO time_zone,
-time_zone_name_orig TO time_zone_name,
-time_zone_transition_orig TO time_zone_transition,
-time_zone_transition_type_orig TO time_zone_transition_type,
-time_zone_leap_second_orig TO time_zone_leap_second;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/mysql_tzinfo_to_sql_symlink.test b/mysql-test/main/mysql_tzinfo_to_sql_symlink.test
index 8970bf88341..5ccf74c2565 100644
--- a/mysql-test/main/mysql_tzinfo_to_sql_symlink.test
+++ b/mysql-test/main/mysql_tzinfo_to_sql_symlink.test
@@ -1,18 +1,13 @@
+--source include/have_innodb.inc
--source include/have_symlink.inc
--source include/not_windows.inc
---source include/not_embedded.inc
+--source include/no_protocol.inc
-use mysql;
-RENAME TABLE time_zone TO time_zone_orig,
- time_zone_name TO time_zone_name_orig,
- time_zone_transition TO time_zone_transition_orig,
- time_zone_transition_type TO time_zone_transition_type_orig,
- time_zone_leap_second TO time_zone_leap_second_orig;
-CREATE TABLE time_zone LIKE time_zone_orig;
-CREATE TABLE time_zone_name LIKE time_zone_name_orig;
-CREATE TABLE time_zone_transition LIKE time_zone_transition_orig;
-CREATE TABLE time_zone_transition_type LIKE time_zone_transition_type_orig;
-CREATE TABLE time_zone_leap_second LIKE time_zone_leap_second_orig;
+CREATE TABLE time_zone LIKE mysql.time_zone;
+CREATE TABLE time_zone_name LIKE mysql.time_zone_name;
+CREATE TABLE time_zone_transition LIKE mysql.time_zone_transition;
+CREATE TABLE time_zone_transition_type LIKE mysql.time_zone_transition_type;
+CREATE TABLE time_zone_leap_second LIKE mysql.time_zone_leap_second;
--echo #
--echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
@@ -27,16 +22,18 @@ CREATE TABLE time_zone_leap_second LIKE time_zone_leap_second_orig;
--echo # Verbose run
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_TZINFO_TO_SQL --verbose $MYSQLTEST_VARDIR/zoneinfo 2>&1
-SELECT COUNT(*) FROM time_zone;
-SELECT COUNT(*) FROM time_zone_name;
-SELECT COUNT(*) FROM time_zone_transition;
-SELECT COUNT(*) FROM time_zone_transition_type;
-SELECT COUNT(*) FROM time_zone_leap_second;
+
+--echo #
+--echo # MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
+--echo #
--echo # Run on zoneinfo directory
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo 2>&1
---exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
@@ -49,13 +46,27 @@ SELECT COUNT(*) FROM time_zone_leap_second;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo 2>&1
---exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo 2>/dev/null > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+CREATE TEMPORARY TABLE baseline AS
+ SELECT VARIABLE_NAME,VARIABLE_VALUE
+ FROM information_schema.global_status
+ WHERE VARIABLE_NAME IN ('COM_BEGIN', 'COM_INSERT', 'COM_LOCK_TABLES', 'COM_ALTER_TABLE', 'COM_TRUNCATE');
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+ FROM information_schema.global_status g
+ JOIN baseline b USING (VARIABLE_NAME)
+ ORDER BY g.VARIABLE_NAME;
+
# Below tests don't include TRUNCATE TABLE so clear them.
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
@@ -69,13 +80,27 @@ TRUNCATE TABLE time_zone_leap_second;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>&1
---exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>/dev/null > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+CREATE OR REPLACE TEMPORARY TABLE baseline AS
+ SELECT VARIABLE_NAME,VARIABLE_VALUE
+ FROM information_schema.global_status
+ WHERE VARIABLE_NAME IN ('COM_BEGIN', 'COM_INSERT', 'COM_LOCK_TABLES', 'COM_ALTER_TABLE', 'COM_TRUNCATE');
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+ FROM information_schema.global_status g
+ JOIN baseline b USING (VARIABLE_NAME)
+ ORDER BY g.VARIABLE_NAME;
+
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -87,13 +112,27 @@ TRUNCATE TABLE time_zone_leap_second;
--echo #
--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>&1
---exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo/GMT 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>/dev/null > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+CREATE OR REPLACE TEMPORARY TABLE baseline AS
+ SELECT VARIABLE_NAME,VARIABLE_VALUE
+ FROM information_schema.global_status
+ WHERE VARIABLE_NAME IN ('COM_BEGIN', 'COM_INSERT', 'COM_LOCK_TABLES', 'COM_ALTER_TABLE', 'COM_TRUNCATE');
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+ FROM information_schema.global_status g
+ JOIN baseline b USING (VARIABLE_NAME)
+ ORDER BY g.VARIABLE_NAME;
+
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -105,13 +144,27 @@ TRUNCATE TABLE time_zone_leap_second;
--echo #
--exec $MYSQL_TZINFO_TO_SQL --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>&1
---exec $MYSQL_TZINFO_TO_SQL --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>/dev/null > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+CREATE OR REPLACE TEMPORARY TABLE baseline AS
+ SELECT VARIABLE_NAME,VARIABLE_VALUE
+ FROM information_schema.global_status
+ WHERE VARIABLE_NAME IN ('COM_BEGIN', 'COM_INSERT', 'COM_LOCK_TABLES', 'COM_ALTER_TABLE', 'COM_TRUNCATE');
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+ FROM information_schema.global_status g
+ JOIN baseline b USING (VARIABLE_NAME)
+ ORDER BY g.VARIABLE_NAME;
+
TRUNCATE TABLE time_zone;
TRUNCATE TABLE time_zone_name;
TRUNCATE TABLE time_zone_transition;
@@ -123,13 +176,27 @@ TRUNCATE TABLE time_zone_leap_second;
--echo #
--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>&1
---exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog --leap $MYSQLTEST_VARDIR/zoneinfo/GMT 2>/dev/null | $MYSQL -S $MASTER_MYSOCK -u root mysql
+--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog --leap $MYSQLTEST_VARDIR/zoneinfo/GMT > $MYSQL_TMP_DIR/tz.sql
+--disable_query_log
+CREATE OR REPLACE TEMPORARY TABLE baseline AS
+ SELECT VARIABLE_NAME,VARIABLE_VALUE
+ FROM information_schema.global_status
+ WHERE VARIABLE_NAME IN ('COM_BEGIN', 'COM_INSERT', 'COM_LOCK_TABLES', 'COM_ALTER_TABLE', 'COM_TRUNCATE');
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+
SELECT COUNT(*) FROM time_zone;
SELECT COUNT(*) FROM time_zone_name;
SELECT COUNT(*) FROM time_zone_transition;
SELECT COUNT(*) FROM time_zone_transition_type;
SELECT COUNT(*) FROM time_zone_leap_second;
+SELECT @wsrep_is_on, @wsrep_cannot_replicate_tz, @save_wsrep_on, @save_sql_log_bin, @@SQL_LOG_BIN;
+SELECT g.VARIABLE_NAME, g.VARIABLE_VALUE - b.VARIABLE_VALUE AS diff
+ FROM information_schema.global_status g
+ JOIN baseline b USING (VARIABLE_NAME)
+ ORDER BY g.VARIABLE_NAME;
+
--echo #
--echo # MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
--echo #
@@ -147,29 +214,46 @@ SELECT COUNT(*) FROM time_zone_leap_second;
--echo # End of 10.2 tests
--echo #
-#
-# Cleanup
-#
+--echo #
+--echo # MDEV-29347 MariaDB 10.6.8 fails to start when ONLY_FULL_GROUP_BY gets provided
+--echo #
---exec rm -rf $MYSQLTEST_VARDIR/zoneinfo
+--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo > $MYSQL_TMP_DIR/tz.sql
+set sql_mode=only_full_group_by;
+--disable_query_log
+--source $MYSQL_TMP_DIR/tz.sql
+--enable_query_log
+SELECT COUNT(*) FROM time_zone;
+SELECT COUNT(*) FROM time_zone_name;
+SELECT COUNT(*) FROM time_zone_transition;
+SELECT COUNT(*) FROM time_zone_transition_type;
+SELECT COUNT(*) FROM time_zone_leap_second;
+select @@sql_mode;
+set sql_mode=default;
--echo #
--echo # MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
--echo #
+--exec rm -rf $MYSQLTEST_VARDIR/zoneinfo
--exec mkdir $MYSQLTEST_VARDIR/zoneinfo
--copy_file std_data/zoneinfo/GMT $MYSQLTEST_VARDIR/zoneinfo/Factory
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--exec $MYSQL_TZINFO_TO_SQL $MYSQLTEST_VARDIR/zoneinfo 2>&1
+#
+# Cleanup
+#
+
+--remove_file $MYSQL_TMP_DIR/tz.sql
--exec rm -rf $MYSQLTEST_VARDIR/zoneinfo
+DROP TABLE baseline;
DROP TABLE time_zone;
DROP TABLE time_zone_name;
DROP TABLE time_zone_transition;
DROP TABLE time_zone_transition_type;
DROP TABLE time_zone_leap_second;
-RENAME TABLE time_zone_orig TO time_zone,
- time_zone_name_orig TO time_zone_name,
- time_zone_transition_orig TO time_zone_transition,
- time_zone_transition_type_orig TO time_zone_transition_type,
- time_zone_leap_second_orig TO time_zone_leap_second;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/mysql_upgrade-20228.result b/mysql-test/main/mysql_upgrade-20228.result
index 30ded626f5a..b58450ea0d9 100644
--- a/mysql-test/main/mysql_upgrade-20228.result
+++ b/mysql-test/main/mysql_upgrade-20228.result
@@ -50,6 +50,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -59,6 +159,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/mysql_upgrade-6984.result b/mysql-test/main/mysql_upgrade-6984.result
index 120f7cf733c..a0ea4607b24 100644
--- a/mysql-test/main/mysql_upgrade-6984.result
+++ b/mysql-test/main/mysql_upgrade-6984.result
@@ -50,6 +50,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -59,6 +159,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/mysql_upgrade-6984.test b/mysql-test/main/mysql_upgrade-6984.test
index d6d06a1e05e..48a06bbd542 100644
--- a/mysql-test/main/mysql_upgrade-6984.test
+++ b/mysql-test/main/mysql_upgrade-6984.test
@@ -2,6 +2,7 @@
# MDEV-6984 Can't migrate from MySQL 5.6.21 to MariaDB 10
#
--source include/not_embedded.inc
+--source include/have_perfschema.inc
#
# When 'root' account is password protected and MYSQL_UPGRADE doesn't
diff --git a/mysql-test/main/mysql_upgrade.result b/mysql-test/main/mysql_upgrade.result
index 3c4b8c2ac1e..b4c42d6828d 100644
--- a/mysql-test/main/mysql_upgrade.result
+++ b/mysql-test/main/mysql_upgrade.result
@@ -34,6 +34,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -43,6 +143,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -84,6 +186,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -93,6 +295,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -133,6 +337,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -142,6 +446,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -151,7 +457,7 @@ ERROR 1045 (28000): Access denied for user 'mysqltest1'@'localhost' (using passw
FATAL ERROR: Upgrade failed
Run mysql_upgrade with a non existing server socket
Reading datadir from the MariaDB server failed. Got the following error when executing the 'mysql' command line client
-ERROR 2005 (HY000): Unknown MySQL server host 'not_existing_host' (errno)
+ERROR 2005 (HY000): Unknown server host 'not_existing_host' (errno)
FATAL ERROR: Upgrade failed
set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
Phase 1/7: Checking and upgrading mysql database
@@ -188,6 +494,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -197,6 +603,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -243,6 +651,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -252,6 +760,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -301,6 +811,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -310,6 +920,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -398,6 +1010,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -407,6 +1119,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -467,6 +1181,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -476,6 +1290,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -503,10 +1319,6 @@ partition p2008 values less than (2009)
);
select length(table_name) from mysql.innodb_table_stats;
length(table_name)
-79
-79
-79
-79
drop table extralongname_extralongname_extralongname_extralongname_ext;
# End of 10.0 tests
set sql_mode=default;
@@ -548,6 +1360,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -557,6 +1469,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.t1 OK
Phase 7/7: Running 'FLUSH PRIVILEGES'
@@ -585,36 +1499,36 @@ Table Create Table
user CREATE TABLE `user` (
`Host` char(60) NOT NULL DEFAULT '',
`User` char(32) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Reload_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Shutdown_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Process_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `File_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_db_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Super_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Repl_client_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_user_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Reload_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Shutdown_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Process_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `File_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_db_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Super_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Repl_client_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_user_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`ssl_cipher` blob NOT NULL,
`x509_issuer` blob NOT NULL,
`x509_subject` blob NOT NULL,
@@ -624,12 +1538,12 @@ user CREATE TABLE `user` (
`max_user_connections` int(11) unsigned NOT NULL DEFAULT 0,
`plugin` char(64) NOT NULL DEFAULT 'mysql_native_password',
`authentication_string` text DEFAULT NULL,
- `password_expired` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `password_expired` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
`password_last_changed` timestamp NULL DEFAULT NULL,
`password_lifetime` smallint(5) unsigned DEFAULT NULL,
- `account_locked` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `account_locked` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`User`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='Users and global privileges'
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
@@ -666,6 +1580,106 @@ Upgrading from a version before MariaDB-10.1
Phase 2/7: Installing used storage engines
Checking for tables with unknown storage engine
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -675,6 +1689,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -740,6 +1756,106 @@ mysql.transaction_registry OK
mysql.user OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -749,6 +1865,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -869,6 +1987,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -878,6 +2096,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -983,6 +2203,106 @@ Upgrading from a version before MariaDB-10.1
Phase 2/7: Installing used storage engines
Checking for tables with unknown storage engine
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -992,6 +2312,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -1011,7 +2333,8 @@ rename table mysql.global_priv_bak to mysql.global_priv;
# Check that mysql_upgrade can be run on mysqldump
# of mysql schema from previous versions
#
-call mtr.add_suppression("innodb_table_stats has length mismatch in the column name table_name");
+call mtr.add_suppression("innodb_(table|index)_stats has length mismatch in the column name table_name");
+call mtr.add_suppression("Column count of mysql.proc is wrong. Expected 21, found 20.");
#
# Upgrade from version 5.5
#
diff --git a/mysql-test/main/mysql_upgrade.test b/mysql-test/main/mysql_upgrade.test
index cce50a32034..0751cee7429 100644
--- a/mysql-test/main/mysql_upgrade.test
+++ b/mysql-test/main/mysql_upgrade.test
@@ -496,7 +496,10 @@ rename table mysql.global_priv_bak to mysql.global_priv;
--echo #
# The warning appears during mysql_upgrade, before the schema becomes consistent
-call mtr.add_suppression("innodb_table_stats has length mismatch in the column name table_name");
+call mtr.add_suppression("innodb_(table|index)_stats has length mismatch in the column name table_name");
+# This comes from opening 10.6 sys.host_summary view that uses sys.format_time function,
+# on still inconsistent mysql.proc, in older versions
+call mtr.add_suppression("Column count of mysql.proc is wrong. Expected 21, found 20.");
--let $old_version= 5.5
--source include/load_dump_and_upgrade.inc
diff --git a/mysql-test/main/mysql_upgrade_mysql_json_datatype.result b/mysql-test/main/mysql_upgrade_mysql_json_datatype.result
index 2714c7c1e04..c58adb829ac 100644
--- a/mysql-test/main/mysql_upgrade_mysql_json_datatype.result
+++ b/mysql-test/main/mysql_upgrade_mysql_json_datatype.result
@@ -44,6 +44,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -53,6 +153,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.mysql_json_test Needs upgrade
test.mysql_json_test_big Needs upgrade
diff --git a/mysql-test/main/mysql_upgrade_noengine.result b/mysql-test/main/mysql_upgrade_noengine.result
index 413cddc8a63..459a1a6ce34 100644
--- a/mysql-test/main/mysql_upgrade_noengine.result
+++ b/mysql-test/main/mysql_upgrade_noengine.result
@@ -90,6 +90,106 @@ mysql.transaction_registry OK
mysql.user OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -99,6 +199,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.t1
Error : Unknown storage engine 'BLACKHOLE'
@@ -185,6 +287,106 @@ mysql.transaction_registry OK
mysql.user OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -194,6 +396,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.t1
Error : Unknown storage engine 'BLACKHOLE'
@@ -283,6 +487,106 @@ Checking for tables with unknown storage engine
installing plugin for 'archive' storage engine
installing plugin for 'blackhole' storage engine
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -292,6 +596,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.t1 OK
test.t2 OK
diff --git a/mysql-test/main/mysql_upgrade_ssl.result b/mysql-test/main/mysql_upgrade_ssl.result
index ff911e9f54b..55ece1269d2 100644
--- a/mysql-test/main/mysql_upgrade_ssl.result
+++ b/mysql-test/main/mysql_upgrade_ssl.result
@@ -35,6 +35,106 @@ mysql.transaction_registry OK
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -44,6 +144,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/mysql_upgrade_view.result b/mysql-test/main/mysql_upgrade_view.result
index 52eb571e54c..ca879b92559 100644
--- a/mysql-test/main/mysql_upgrade_view.result
+++ b/mysql-test/main/mysql_upgrade_view.result
@@ -115,6 +115,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
test.v1 OK
test.v1badcheck OK
test.v2 OK
@@ -128,6 +228,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.kv OK
test.t1 OK
@@ -135,13 +237,13 @@ Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v2;
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v3;
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
set sql_log_bin=1;
REPAIR VIEW v1,v2;
Table Op Msg_type Msg_text
@@ -202,13 +304,13 @@ flush tables;
create algorithm=temptable view v4 as select a from t1;
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v2;
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v3;
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v4;
View Create View character_set_client collation_connection
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
@@ -265,6 +367,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views from mysql
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
test.v1 OK
test.v2 OK
test.v3 OK
@@ -278,6 +480,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
test.kv OK
test.t1 OK
@@ -286,13 +490,13 @@ OK
flush tables;
show create view v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v2;
View Create View character_set_client collation_connection
-v2 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v2 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v3;
View Create View character_set_client collation_connection
-v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8mb3 utf8mb3_general_ci
show create view v4;
View Create View character_set_client collation_connection
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
@@ -390,6 +594,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views from mysql
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
test.v1 OK
test.v2 OK
test.v3 OK
diff --git a/mysql-test/main/mysql_upgrade_view.test b/mysql-test/main/mysql_upgrade_view.test
index f894b56b08b..d3d955e7cae 100644
--- a/mysql-test/main/mysql_upgrade_view.test
+++ b/mysql-test/main/mysql_upgrade_view.test
@@ -1,4 +1,6 @@
-- source include/have_log_bin.inc
+-- source include/have_perfschema.inc
+
reset master; # clear binlogs
set sql_log_bin=0;
--disable_warnings
diff --git a/mysql-test/main/mysqladmin.result b/mysql-test/main/mysqladmin.result
index 8aac6cc59ae..8c28a5aabae 100644
--- a/mysql-test/main/mysqladmin.result
+++ b/mysql-test/main/mysqladmin.result
@@ -17,3 +17,12 @@ mysqld is alive
# Creating an empty file 'cnf_file'
# Using --defaults-extra-file option with 'cnf_file'.
mysqld is alive
+# restart: --ssl-key=MYSQLTEST_VARDIR/tmp/ssl_key.pem --ssl-cert=MYSQLTEST_VARDIR/tmp/ssl_cert.pem
+connect ssl_con,localhost,root,,,,,SSL;
+SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after';
+# Use a different certificate ("Not after" certificate field changed)
+# Check new certificate used by new connection
+Result
+OK
+# Cleanup
+# restart
diff --git a/mysql-test/main/mysqladmin.test b/mysql-test/main/mysqladmin.test
index b7cc6d94628..07e23cfe25c 100644
--- a/mysql-test/main/mysqladmin.test
+++ b/mysql-test/main/mysqladmin.test
@@ -51,3 +51,48 @@ EOF
#
--error 1
--exec $MYSQLADMIN -u root -p 2>&1 > /dev/null
+
+#
+# MDEV-19168 Reload SSL certificate
+# This test reloads server SSL certs ./mysqladmin flush-ssl, and checks that new SSL
+# connection use new certificate.
+# Status variable Ssl_server_not_after is used to tell the old certificate from new.
+#
+
+source include/have_ssl_communication.inc;
+
+# Restart server with cert. files located in temp directory
+# We are going to remove / replace them within the test,
+# so we can't use the ones in std_data directly.
+
+let $ssl_cert=$MYSQLTEST_VARDIR/tmp/ssl_cert.pem;
+let $ssl_key=$MYSQLTEST_VARDIR/tmp/ssl_key.pem;
+
+copy_file $MYSQL_TEST_DIR/std_data/server-key.pem $ssl_key;
+copy_file $MYSQL_TEST_DIR/std_data/server-cert.pem $ssl_cert;
+
+let $restart_parameters=--ssl-key=$ssl_key --ssl-cert=$ssl_cert;
+--source include/restart_mysqld.inc
+
+connect ssl_con,localhost,root,,,,,SSL;
+SELECT VARIABLE_VALUE INTO @ssl_not_after FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after';
+let $ssl_not_after=`SELECT @ssl_not_after`;
+
+remove_file $ssl_cert;
+remove_file $ssl_key;
+
+--echo # Use a different certificate ("Not after" certificate field changed)
+copy_file $MYSQL_TEST_DIR/std_data/server-new-key.pem $ssl_key;
+copy_file $MYSQL_TEST_DIR/std_data/server-new-cert.pem $ssl_cert;
+
+--exec $MYSQLADMIN --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= flush-ssl 2>&1
+
+--echo # Check new certificate used by new connection
+exec $MYSQL --ssl -e "SELECT IF(VARIABLE_VALUE <> '$ssl_not_after', 'OK', 'FAIL') as Result FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_server_not_after'";
+
+--echo # Cleanup
+remove_file $ssl_cert;
+remove_file $ssl_key;
+# restart with usual SSL
+let $restart_parameters=;
+--source include/restart_mysqld.inc
diff --git a/mysql-test/main/mysqlbinlog.result b/mysql-test/main/mysqlbinlog.result
index c6d9ef97229..1ca22f42277 100644
--- a/mysql-test/main/mysqlbinlog.result
+++ b/mysql-test/main/mysqlbinlog.result
@@ -970,7 +970,7 @@ AAAAAAAAAAAAAAAAAAAgrgJSFzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
# b1 61 62 6c 65 20 74 65 73 74 2e 74 31 20 28 69 64 |able test.t1 (id|
# c1 20 69 6e 74 20 6e 6f 74 20 6e 75 6c 6c 29 | int not null)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907364/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
@@ -994,7 +994,7 @@ create table test.t1 (id int not null)
# 116 6e 74 6f 20 74 65 73 74 2e 74 31 20 28 69 64 29 |nto test.t1 (id)|
# 126 20 76 61 6c 75 65 73 20 28 31 29 | values (1)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907366/*!*/;
insert into test.t1 (id) values (1)
/*!*/;
@@ -1009,7 +1009,7 @@ insert into test.t1 (id) values (1)
# 168 04 08 00 08 00 08 00 00 64 72 6f 70 20 74 61 62 |........drop tab|
# 178 6c 65 20 74 65 73 74 2e 74 31 |le test.t1|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907368/*!*/;
drop table test.t1
/*!*/;
@@ -1053,7 +1053,7 @@ AAAAAAAAAAAAAAAAAAA/rQJSGzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
# b5 61 62 6c 65 20 74 65 73 74 2e 74 31 20 28 69 64 |able test.t1 (id|
# c5 20 69 6e 74 20 6e 6f 74 20 6e 75 6c 6c 29 | int not null)|
#
-# Event: Query thread_id=1 exec_time=1 error_code=0
+# Event: Query thread_id=1 exec_time=1 error_code=0 xid=0
SET TIMESTAMP=1375907141/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
@@ -1077,7 +1077,7 @@ create table test.t1 (id int not null)
# 11e 6e 74 6f 20 74 65 73 74 2e 74 31 20 28 69 64 29 |nto test.t1 (id)|
# 12e 20 76 61 6c 75 65 73 20 28 31 29 | values (1)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907144/*!*/;
insert into test.t1 (id) values (1)
/*!*/;
@@ -1092,7 +1092,7 @@ insert into test.t1 (id) values (1)
# 174 04 08 00 08 00 08 00 00 64 72 6f 70 20 74 61 62 |........drop tab|
# 184 6c 65 20 74 65 73 74 2e 74 31 |le test.t1|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907148/*!*/;
drop table test.t1
/*!*/;
@@ -1136,7 +1136,7 @@ AAAAAAAAAAAAAAAAAAAnrAJSHzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
# b9 61 62 6c 65 20 74 65 73 74 2e 74 31 20 28 69 64 |able test.t1 (id|
# c9 20 69 6e 74 20 6e 6f 74 20 6e 75 6c 6c 29 | int not null)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375906879/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
@@ -1160,7 +1160,7 @@ create table test.t1 (id int not null)
# 126 6e 74 6f 20 74 65 73 74 2e 74 31 20 28 69 64 29 |nto test.t1 (id)|
# 136 20 76 61 6c 75 65 73 20 28 31 29 | values (1)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375906891/*!*/;
insert into test.t1 (id) values (1)
/*!*/;
@@ -1175,7 +1175,7 @@ insert into test.t1 (id) values (1)
# 180 04 08 00 08 00 08 00 00 64 72 6f 70 20 74 61 62 |........drop tab|
# 190 6c 65 20 74 65 73 74 2e 74 31 |le test.t1|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375906901/*!*/;
drop table test.t1
/*!*/;
@@ -1219,7 +1219,7 @@ AAAAAAAAAAAAAAAAAABbsAJSEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
# ad 61 62 6c 65 20 74 65 73 74 2e 74 31 20 28 69 64 |able test.t1 (id|
# bd 20 69 6e 74 20 6e 6f 74 20 6e 75 6c 6c 29 | int not null)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907933/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
@@ -1243,7 +1243,7 @@ create table test.t1 (id int not null)
# 10e 6e 74 6f 20 74 65 73 74 2e 74 31 20 28 69 64 29 |nto test.t1 (id)|
# 11e 20 76 61 6c 75 65 73 20 28 31 29 | values (1)|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907935/*!*/;
insert into test.t1 (id) values (1)
/*!*/;
@@ -1258,7 +1258,7 @@ insert into test.t1 (id) values (1)
# 15c 04 08 00 08 00 08 00 00 64 72 6f 70 20 74 61 62 |........drop tab|
# 16c 6c 65 20 74 65 73 74 2e 74 31 |le test.t1|
#
-# Event: Query thread_id=1 exec_time=0 error_code=0
+# Event: Query thread_id=1 exec_time=0 error_code=0 xid=0
SET TIMESTAMP=1375907937/*!*/;
drop table test.t1
/*!*/;
diff --git a/mysql-test/main/mysqlbinlog_row_compressed.result b/mysql-test/main/mysqlbinlog_row_compressed.result
index 820e100220f..9ea11c7a6d3 100644
--- a/mysql-test/main/mysqlbinlog_row_compressed.result
+++ b/mysql-test/main/mysqlbinlog_row_compressed.result
@@ -29,7 +29,7 @@ ROLLBACK/*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
# at 371
-#<date> server id 1 end_log_pos 533 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+#<date> server id 1 end_log_pos 542 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
use `test`/*!*/;
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
@@ -42,26 +42,26 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 533
-#<date> server id 1 end_log_pos 575 CRC32 XXX GTID 0-1-2 ddl
+# at 542
+#<date> server id 1 end_log_pos 584 CRC32 XXX GTID 0-1-2 ddl
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
-# at 575
-#<date> server id 1 end_log_pos 727 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 584
+#<date> server id 1 end_log_pos 745 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 727
-#<date> server id 1 end_log_pos 769 CRC32 XXX GTID 0-1-3
+# at 745
+#<date> server id 1 end_log_pos 787 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
START TRANSACTION
/*!*/;
-# at 769
-# at 843
-#<date> server id 1 end_log_pos 843 CRC32 XXX Annotate_rows:
+# at 787
+# at 861
+#<date> server id 1 end_log_pos 861 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
-#<date> server id 1 end_log_pos 899 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 899
-#<date> server id 1 end_log_pos 967 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 917 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 917
+#<date> server id 1 end_log_pos 985 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -74,23 +74,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 967
-#<date> server id 1 end_log_pos 1040 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 985
+#<date> server id 1 end_log_pos 1058 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1040
-#<date> server id 1 end_log_pos 1082 CRC32 XXX GTID 0-1-4
+# at 1058
+#<date> server id 1 end_log_pos 1100 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
-# at 1082
-# at 1158
-#<date> server id 1 end_log_pos 1158 CRC32 XXX Annotate_rows:
+# at 1100
+# at 1176
+#<date> server id 1 end_log_pos 1176 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
-#<date> server id 1 end_log_pos 1214 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1214
-#<date> server id 1 end_log_pos 1281 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1232 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1232
+#<date> server id 1 end_log_pos 1299 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
@@ -103,23 +103,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
# Number of rows: 1
-# at 1281
-#<date> server id 1 end_log_pos 1354 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1299
+#<date> server id 1 end_log_pos 1372 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1354
-#<date> server id 1 end_log_pos 1396 CRC32 XXX GTID 0-1-5
+# at 1372
+#<date> server id 1 end_log_pos 1414 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
-# at 1396
-# at 1474
-#<date> server id 1 end_log_pos 1474 CRC32 XXX Annotate_rows:
+# at 1414
+# at 1492
+#<date> server id 1 end_log_pos 1492 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1530 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1530
-#<date> server id 1 end_log_pos 1596 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1548 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1548
+#<date> server id 1 end_log_pos 1614 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
@@ -132,23 +132,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1596
-#<date> server id 1 end_log_pos 1669 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1614
+#<date> server id 1 end_log_pos 1687 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1669
-#<date> server id 1 end_log_pos 1711 CRC32 XXX GTID 0-1-6
+# at 1687
+#<date> server id 1 end_log_pos 1729 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
-# at 1711
-# at 1786
-#<date> server id 1 end_log_pos 1786 CRC32 XXX Annotate_rows:
+# at 1729
+# at 1804
+#<date> server id 1 end_log_pos 1804 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1842 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1842
-#<date> server id 1 end_log_pos 1909 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1860 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1860
+#<date> server id 1 end_log_pos 1927 CRC32 XXX Write_compressed_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
@@ -161,23 +161,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1909
-#<date> server id 1 end_log_pos 1982 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1927
+#<date> server id 1 end_log_pos 2000 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1982
-#<date> server id 1 end_log_pos 2024 CRC32 XXX GTID 0-1-7
+# at 2000
+#<date> server id 1 end_log_pos 2042 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
-# at 2024
-# at 2078
-#<date> server id 1 end_log_pos 2078 CRC32 XXX Annotate_rows:
+# at 2042
+# at 2096
+#<date> server id 1 end_log_pos 2096 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t2 SELECT * FROM t1
-#<date> server id 1 end_log_pos 2134 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2134
-#<date> server id 1 end_log_pos 2225 CRC32 XXX Write_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2152 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 2152
+#<date> server id 1 end_log_pos 2243 CRC32 XXX Write_compressed_rows: table id 33 flags: STMT_END_F
### INSERT INTO `test`.`t2`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -223,23 +223,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 2225
-#<date> server id 1 end_log_pos 2298 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2243
+#<date> server id 1 end_log_pos 2316 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2298
-#<date> server id 1 end_log_pos 2340 CRC32 XXX GTID 0-1-8
+# at 2316
+#<date> server id 1 end_log_pos 2358 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
-# at 2340
-# at 2406
-#<date> server id 1 end_log_pos 2406 CRC32 XXX Annotate_rows:
+# at 2358
+# at 2424
+#<date> server id 1 end_log_pos 2424 CRC32 XXX Annotate_rows:
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
-#<date> server id 1 end_log_pos 2462 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2462
-#<date> server id 1 end_log_pos 2561 CRC32 XXX Update_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2480 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 2480
+#<date> server id 1 end_log_pos 2579 CRC32 XXX Update_compressed_rows: table id 33 flags: STMT_END_F
### UPDATE `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -304,23 +304,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 3
-# at 2561
-#<date> server id 1 end_log_pos 2634 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2579
+#<date> server id 1 end_log_pos 2652 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2634
-#<date> server id 1 end_log_pos 2676 CRC32 XXX GTID 0-1-9
+# at 2652
+#<date> server id 1 end_log_pos 2694 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
-# at 2676
-# at 2713
-#<date> server id 1 end_log_pos 2713 CRC32 XXX Annotate_rows:
+# at 2694
+# at 2731
+#<date> server id 1 end_log_pos 2731 CRC32 XXX Annotate_rows:
#Q> DELETE FROM t1
-#<date> server id 1 end_log_pos 2769 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 2769
-#<date> server id 1 end_log_pos 2861 CRC32 XXX Delete_compressed_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2787 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 2787
+#<date> server id 1 end_log_pos 2879 CRC32 XXX Delete_compressed_rows: table id 32 flags: STMT_END_F
### DELETE FROM `test`.`t1`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -366,23 +366,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 2861
-#<date> server id 1 end_log_pos 2934 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2879
+#<date> server id 1 end_log_pos 2952 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2934
-#<date> server id 1 end_log_pos 2976 CRC32 XXX GTID 0-1-10
+# at 2952
+#<date> server id 1 end_log_pos 2994 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
START TRANSACTION
/*!*/;
-# at 2976
-# at 3013
-#<date> server id 1 end_log_pos 3013 CRC32 XXX Annotate_rows:
+# at 2994
+# at 3031
+#<date> server id 1 end_log_pos 3031 CRC32 XXX Annotate_rows:
#Q> DELETE FROM t2
-#<date> server id 1 end_log_pos 3069 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 3069
-#<date> server id 1 end_log_pos 3154 CRC32 XXX Delete_compressed_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 3087 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 3087
+#<date> server id 1 end_log_pos 3172 CRC32 XXX Delete_compressed_rows: table id 33 flags: STMT_END_F
### DELETE FROM `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -428,13 +428,13 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 3154
-#<date> server id 1 end_log_pos 3227 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 3172
+#<date> server id 1 end_log_pos 3245 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 3227
-#<date> server id 1 end_log_pos 3275 CRC32 XXX Rotate to master-bin.000002 pos: 4
+# at 3245
+#<date> server id 1 end_log_pos 3293 CRC32 XXX Rotate to master-bin.000002 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
diff --git a/mysql-test/main/mysqlbinlog_row_compressed.test b/mysql-test/main/mysqlbinlog_row_compressed.test
index 6b62a42c449..5c4aff00663 100644
--- a/mysql-test/main/mysqlbinlog_row_compressed.test
+++ b/mysql-test/main/mysqlbinlog_row_compressed.test
@@ -29,7 +29,7 @@ DELETE FROM t2;
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/
+--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog
--echo
diff --git a/mysql-test/main/mysqlbinlog_row_minimal.result b/mysql-test/main/mysqlbinlog_row_minimal.result
index a05a778105f..cd59d24f007 100644
--- a/mysql-test/main/mysqlbinlog_row_minimal.result
+++ b/mysql-test/main/mysqlbinlog_row_minimal.result
@@ -27,7 +27,7 @@ ROLLBACK/*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
# at 371
-#<date> server id 1 end_log_pos 555 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+#<date> server id 1 end_log_pos 564 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
use `test`/*!*/;
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
@@ -40,26 +40,26 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 555
-#<date> server id 1 end_log_pos 597 CRC32 XXX GTID 0-1-2 ddl
+# at 564
+#<date> server id 1 end_log_pos 606 CRC32 XXX GTID 0-1-2 ddl
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
-# at 597
-#<date> server id 1 end_log_pos 774 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 606
+#<date> server id 1 end_log_pos 792 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 774
-#<date> server id 1 end_log_pos 816 CRC32 XXX GTID 0-1-3
+# at 792
+#<date> server id 1 end_log_pos 834 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
START TRANSACTION
/*!*/;
-# at 816
-# at 890
-#<date> server id 1 end_log_pos 890 CRC32 XXX Annotate_rows:
+# at 834
+# at 908
+#<date> server id 1 end_log_pos 908 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
-#<date> server id 1 end_log_pos 946 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 946
-#<date> server id 1 end_log_pos 1015 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 964 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 964
+#<date> server id 1 end_log_pos 1033 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -72,23 +72,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1015
-#<date> server id 1 end_log_pos 1088 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1033
+#<date> server id 1 end_log_pos 1106 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1088
-#<date> server id 1 end_log_pos 1130 CRC32 XXX GTID 0-1-4
+# at 1106
+#<date> server id 1 end_log_pos 1148 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
-# at 1130
-# at 1206
-#<date> server id 1 end_log_pos 1206 CRC32 XXX Annotate_rows:
+# at 1148
+# at 1224
+#<date> server id 1 end_log_pos 1224 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
-#<date> server id 1 end_log_pos 1262 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1262
-#<date> server id 1 end_log_pos 1330 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1280 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1280
+#<date> server id 1 end_log_pos 1348 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
@@ -101,23 +101,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
# Number of rows: 1
-# at 1330
-#<date> server id 1 end_log_pos 1403 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1348
+#<date> server id 1 end_log_pos 1421 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1403
-#<date> server id 1 end_log_pos 1445 CRC32 XXX GTID 0-1-5
+# at 1421
+#<date> server id 1 end_log_pos 1463 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
-# at 1445
-# at 1523
-#<date> server id 1 end_log_pos 1523 CRC32 XXX Annotate_rows:
+# at 1463
+# at 1541
+#<date> server id 1 end_log_pos 1541 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1579 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1579
-#<date> server id 1 end_log_pos 1646 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1597 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1597
+#<date> server id 1 end_log_pos 1664 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
@@ -130,23 +130,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1646
-#<date> server id 1 end_log_pos 1719 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1664
+#<date> server id 1 end_log_pos 1737 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1719
-#<date> server id 1 end_log_pos 1761 CRC32 XXX GTID 0-1-6
+# at 1737
+#<date> server id 1 end_log_pos 1779 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
-# at 1761
-# at 1836
-#<date> server id 1 end_log_pos 1836 CRC32 XXX Annotate_rows:
+# at 1779
+# at 1854
+#<date> server id 1 end_log_pos 1854 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
-#<date> server id 1 end_log_pos 1892 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 1892
-#<date> server id 1 end_log_pos 1962 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 1910 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 1910
+#<date> server id 1 end_log_pos 1980 CRC32 XXX Write_rows: table id 32 flags: STMT_END_F
### INSERT INTO `test`.`t1`
### SET
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
@@ -159,23 +159,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 1
-# at 1962
-#<date> server id 1 end_log_pos 2035 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1980
+#<date> server id 1 end_log_pos 2053 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2035
-#<date> server id 1 end_log_pos 2077 CRC32 XXX GTID 0-1-7
+# at 2053
+#<date> server id 1 end_log_pos 2095 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
-# at 2077
-# at 2131
-#<date> server id 1 end_log_pos 2131 CRC32 XXX Annotate_rows:
+# at 2095
+# at 2149
+#<date> server id 1 end_log_pos 2149 CRC32 XXX Annotate_rows:
#Q> INSERT INTO t2 SELECT * FROM t1
-#<date> server id 1 end_log_pos 2187 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2187
-#<date> server id 1 end_log_pos 2354 CRC32 XXX Write_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2205 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 2205
+#<date> server id 1 end_log_pos 2372 CRC32 XXX Write_rows: table id 33 flags: STMT_END_F
### INSERT INTO `test`.`t2`
### SET
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -221,23 +221,23 @@ START TRANSACTION
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
# Number of rows: 4
-# at 2354
-#<date> server id 1 end_log_pos 2427 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2372
+#<date> server id 1 end_log_pos 2445 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2427
-#<date> server id 1 end_log_pos 2469 CRC32 XXX GTID 0-1-8
+# at 2445
+#<date> server id 1 end_log_pos 2487 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
-# at 2469
-# at 2535
-#<date> server id 1 end_log_pos 2535 CRC32 XXX Annotate_rows:
+# at 2487
+# at 2553
+#<date> server id 1 end_log_pos 2553 CRC32 XXX Annotate_rows:
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
-#<date> server id 1 end_log_pos 2591 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 2591
-#<date> server id 1 end_log_pos 2657 CRC32 XXX Update_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2609 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 2609
+#<date> server id 1 end_log_pos 2675 CRC32 XXX Update_rows: table id 33 flags: STMT_END_F
### UPDATE `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -254,23 +254,23 @@ START TRANSACTION
### SET
### @5=5 /* INT meta=0 nullable=1 is_null=0 */
# Number of rows: 3
-# at 2657
-#<date> server id 1 end_log_pos 2730 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2675
+#<date> server id 1 end_log_pos 2748 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2730
-#<date> server id 1 end_log_pos 2772 CRC32 XXX GTID 0-1-9
+# at 2748
+#<date> server id 1 end_log_pos 2790 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
-# at 2772
-# at 2809
-#<date> server id 1 end_log_pos 2809 CRC32 XXX Annotate_rows:
+# at 2790
+# at 2827
+#<date> server id 1 end_log_pos 2827 CRC32 XXX Annotate_rows:
#Q> DELETE FROM t1
-#<date> server id 1 end_log_pos 2865 CRC32 XXX Table_map: `test`.`t1` mapped to number num
-# at 2865
-#<date> server id 1 end_log_pos 2919 CRC32 XXX Delete_rows: table id 32 flags: STMT_END_F
+#<date> server id 1 end_log_pos 2883 CRC32 XXX Table_map: `test`.`t1` mapped to number num
+# at 2883
+#<date> server id 1 end_log_pos 2937 CRC32 XXX Delete_rows: table id 32 flags: STMT_END_F
### DELETE FROM `test`.`t1`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -284,23 +284,23 @@ START TRANSACTION
### WHERE
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
# Number of rows: 4
-# at 2919
-#<date> server id 1 end_log_pos 2992 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2937
+#<date> server id 1 end_log_pos 3010 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2992
-#<date> server id 1 end_log_pos 3034 CRC32 XXX GTID 0-1-10
+# at 3010
+#<date> server id 1 end_log_pos 3052 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
START TRANSACTION
/*!*/;
-# at 3034
-# at 3071
-#<date> server id 1 end_log_pos 3071 CRC32 XXX Annotate_rows:
+# at 3052
+# at 3089
+#<date> server id 1 end_log_pos 3089 CRC32 XXX Annotate_rows:
#Q> DELETE FROM t2
-#<date> server id 1 end_log_pos 3127 CRC32 XXX Table_map: `test`.`t2` mapped to number num
-# at 3127
-#<date> server id 1 end_log_pos 3181 CRC32 XXX Delete_rows: table id 33 flags: STMT_END_F
+#<date> server id 1 end_log_pos 3145 CRC32 XXX Table_map: `test`.`t2` mapped to number num
+# at 3145
+#<date> server id 1 end_log_pos 3199 CRC32 XXX Delete_rows: table id 33 flags: STMT_END_F
### DELETE FROM `test`.`t2`
### WHERE
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
@@ -314,13 +314,13 @@ START TRANSACTION
### WHERE
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
# Number of rows: 4
-# at 3181
-#<date> server id 1 end_log_pos 3254 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 3199
+#<date> server id 1 end_log_pos 3272 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 3254
-#<date> server id 1 end_log_pos 3302 CRC32 XXX Rotate to master-bin.000002 pos: 4
+# at 3272
+#<date> server id 1 end_log_pos 3320 CRC32 XXX Rotate to master-bin.000002 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
@@ -394,7 +394,7 @@ START TRANSACTION
### @3=X /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */
# Number of rows: 1
# at POS
-#<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Query thread_id=TID exec_time=x error_code=0
+#<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Query thread_id=TID exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=TID/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
diff --git a/mysql-test/main/mysqlbinlog_row_minimal.test b/mysql-test/main/mysqlbinlog_row_minimal.test
index b399cc4ac45..67fa7b94e6d 100644
--- a/mysql-test/main/mysqlbinlog_row_minimal.test
+++ b/mysql-test/main/mysqlbinlog_row_minimal.test
@@ -28,7 +28,7 @@ DELETE FROM t2;
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/
+--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog
DROP TABLE t1,t2;
@@ -95,7 +95,7 @@ UPDATE t1 t1 INNER JOIN t2 t2 ON t1.ref_id = t2.id
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /table id \d*/table id TID/ /mapped to number \d*/mapped to number TID/ /at \d*/at POS/ /end_log_pos \d*/end_log_pos END_LOG_POS/ /GTID \d*-\d*-\d*/GTID D-S-N/ /\d{6} *\d*:\d\d:\d\d/<date>/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /@3=\d*/@3=X/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /thread_id=\d*/thread_id=TID/
+--replace_regex /table id \d*/table id TID/ /mapped to number \d*/mapped to number TID/ /at \d*/at POS/ /end_log_pos \d*/end_log_pos END_LOG_POS/ /GTID \d*-\d*-\d*/GTID D-S-N/ /\d{6} *\d*:\d\d:\d\d/<date>/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /@3=\d*/@3=X/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /thread_id=\d*/thread_id=TID/ /xid=\d*/xid=<xid>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog --start-position=$binlog_pos --stop-position=$binlog_end
DROP TABLE t1,t2;
diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.result b/mysql-test/main/mysqlbinlog_stmt_compressed.result
index 7db60a96b72..bb1894099a1 100644
--- a/mysql-test/main/mysqlbinlog_stmt_compressed.result
+++ b/mysql-test/main/mysqlbinlog_stmt_compressed.result
@@ -29,7 +29,7 @@ ROLLBACK/*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
# at 371
-#<date> server id 1 end_log_pos 533 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+#<date> server id 1 end_log_pos 542 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
use `test`/*!*/;
SET TIMESTAMP=X/*!*/;
SET @@session.pseudo_thread_id=5/*!*/;
@@ -42,136 +42,136 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 533
-#<date> server id 1 end_log_pos 575 CRC32 XXX GTID 0-1-2 ddl
+# at 542
+#<date> server id 1 end_log_pos 584 CRC32 XXX GTID 0-1-2 ddl
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
-# at 575
-#<date> server id 1 end_log_pos 727 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 584
+#<date> server id 1 end_log_pos 745 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
/*!*/;
-# at 727
-#<date> server id 1 end_log_pos 769 CRC32 XXX GTID 0-1-3
+# at 745
+#<date> server id 1 end_log_pos 787 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
START TRANSACTION
/*!*/;
-# at 769
-#<date> server id 1 end_log_pos 897 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 787
+#<date> server id 1 end_log_pos 915 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
/*!*/;
-# at 897
-#<date> server id 1 end_log_pos 970 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 915
+#<date> server id 1 end_log_pos 988 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 970
-#<date> server id 1 end_log_pos 1012 CRC32 XXX GTID 0-1-4
+# at 988
+#<date> server id 1 end_log_pos 1030 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
-# at 1012
-#<date> server id 1 end_log_pos 1140 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 1030
+#<date> server id 1 end_log_pos 1158 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
/*!*/;
-# at 1140
-#<date> server id 1 end_log_pos 1213 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1158
+#<date> server id 1 end_log_pos 1231 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1213
-#<date> server id 1 end_log_pos 1255 CRC32 XXX GTID 0-1-5
+# at 1231
+#<date> server id 1 end_log_pos 1273 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
-# at 1255
-#<date> server id 1 end_log_pos 1385 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 1273
+#<date> server id 1 end_log_pos 1403 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
/*!*/;
-# at 1385
-#<date> server id 1 end_log_pos 1458 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1403
+#<date> server id 1 end_log_pos 1476 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1458
-#<date> server id 1 end_log_pos 1500 CRC32 XXX GTID 0-1-6
+# at 1476
+#<date> server id 1 end_log_pos 1518 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
-# at 1500
-#<date> server id 1 end_log_pos 1627 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 1518
+#<date> server id 1 end_log_pos 1645 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
/*!*/;
-# at 1627
-#<date> server id 1 end_log_pos 1700 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1645
+#<date> server id 1 end_log_pos 1718 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1700
-#<date> server id 1 end_log_pos 1742 CRC32 XXX GTID 0-1-7
+# at 1718
+#<date> server id 1 end_log_pos 1760 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
-# at 1742
-#<date> server id 1 end_log_pos 1850 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 1760
+#<date> server id 1 end_log_pos 1868 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
INSERT INTO t2 SELECT * FROM t1
/*!*/;
-# at 1850
-#<date> server id 1 end_log_pos 1923 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 1868
+#<date> server id 1 end_log_pos 1941 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 1923
-#<date> server id 1 end_log_pos 1965 CRC32 XXX GTID 0-1-8
+# at 1941
+#<date> server id 1 end_log_pos 1983 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
-# at 1965
-#<date> server id 1 end_log_pos 2082 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 1983
+#<date> server id 1 end_log_pos 2100 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
/*!*/;
-# at 2082
-#<date> server id 1 end_log_pos 2155 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2100
+#<date> server id 1 end_log_pos 2173 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2155
-#<date> server id 1 end_log_pos 2197 CRC32 XXX GTID 0-1-9
+# at 2173
+#<date> server id 1 end_log_pos 2215 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
-# at 2197
-#<date> server id 1 end_log_pos 2288 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 2215
+#<date> server id 1 end_log_pos 2306 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
DELETE FROM t1
/*!*/;
-# at 2288
-#<date> server id 1 end_log_pos 2361 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2306
+#<date> server id 1 end_log_pos 2379 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2361
-#<date> server id 1 end_log_pos 2403 CRC32 XXX GTID 0-1-10
+# at 2379
+#<date> server id 1 end_log_pos 2421 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
START TRANSACTION
/*!*/;
-# at 2403
-#<date> server id 1 end_log_pos 2494 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
+# at 2421
+#<date> server id 1 end_log_pos 2512 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
DELETE FROM t2
/*!*/;
-# at 2494
-#<date> server id 1 end_log_pos 2567 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
+# at 2512
+#<date> server id 1 end_log_pos 2585 CRC32 XXX Query thread_id=5 exec_time=x error_code=0 xid=<xid>
SET TIMESTAMP=X/*!*/;
COMMIT
/*!*/;
-# at 2567
-#<date> server id 1 end_log_pos 2615 CRC32 XXX Rotate to master-bin.000002 pos: 4
+# at 2585
+#<date> server id 1 end_log_pos 2633 CRC32 XXX Rotate to master-bin.000002 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.test b/mysql-test/main/mysqlbinlog_stmt_compressed.test
index 613a820d3ea..75dae6fa84e 100644
--- a/mysql-test/main/mysqlbinlog_stmt_compressed.test
+++ b/mysql-test/main/mysqlbinlog_stmt_compressed.test
@@ -29,7 +29,7 @@ DELETE FROM t2;
FLUSH BINARY LOGS;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/
+--replace_regex /\d{6} *\d*:\d\d:\d\d/<date>/ /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ /xid=\d*/xid=<xid>/
--exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog
--echo
diff --git a/mysql-test/main/mysqlcheck.result b/mysql-test/main/mysqlcheck.result
index 8b6a19b5270..4955bd0292a 100644
--- a/mysql-test/main/mysqlcheck.result
+++ b/mysql-test/main/mysqlcheck.result
@@ -34,6 +34,7 @@ mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.transaction_registry OK
+sys.sys_config OK
mtr.global_suppressions Table is already up to date
mtr.test_suppressions Table is already up to date
mysql.column_stats OK
@@ -70,6 +71,7 @@ mysql.time_zone_transition_type OK
mysql.transaction_registry
note : Table does not support optimize, doing recreate + analyze instead
status : OK
+sys.sys_config OK
mysql.column_stats OK
mysql.columns_priv OK
mysql.db OK
@@ -260,8 +262,8 @@ USE `a@b`;
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA="a@b" ORDER BY trigger_name;
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
-def a@b tr1 INSERT def a@b c@d 1 NULL SET NEW.a = 10 * NEW.a ROW BEFORE NULL NULL OLD NEW NULL root@localhost utf8 utf8_general_ci latin1_swedish_ci
-def a@b tr2 INSERT def a@b t1 1 NULL SET NEW.a = 100 * NEW.a ROW BEFORE NULL NULL OLD NEW NULL root@localhost utf8 utf8_general_ci latin1_swedish_ci
+def a@b tr1 INSERT def a@b c@d 1 NULL SET NEW.a = 10 * NEW.a ROW BEFORE NULL NULL OLD NEW NULL root@localhost utf8mb3 utf8mb3_general_ci latin1_swedish_ci
+def a@b tr2 INSERT def a@b t1 1 NULL SET NEW.a = 100 * NEW.a ROW BEFORE NULL NULL OLD NEW NULL root@localhost utf8mb3 utf8mb3_general_ci latin1_swedish_ci
INSERT INTO `c@d` VALUES (2), (1);
SELECT * FROM `c@d`;
a
@@ -427,7 +429,7 @@ create table mysqltest1.t1 (a int) engine=myisam;
create table t2 (a int);
check table mysqltest1.t1;
Table Op Msg_type Msg_text
-mysqltest1.t1 check warning Size of datafile is: 4 Should be: 0
+mysqltest1.t1 check warning Size of datafile is: 4 Should be: 0
mysqltest1.t1 check error got error: 0 when reading datafile at record: 0
mysqltest1.t1 check error Corrupt
mtr.global_suppressions Table is already up to date
@@ -462,9 +464,10 @@ mysql.time_zone_transition_type Table is already up to date
mysql.transaction_registry OK
mysqltest1.t1
warning : Table is marked as crashed
-warning : Size of datafile is: 4 Should be: 0
+warning : Size of datafile is: 4 Should be: 0
error : got error: 0 when reading datafile at record: 0
error : Corrupt
+sys.sys_config Table is already up to date
test.t2 Table is already up to date
Repairing tables
diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result
index 60ee8426ccd..a3dac7fcfcb 100644
--- a/mysql-test/main/mysqld--help.result
+++ b/mysql-test/main/mysqld--help.result
@@ -76,6 +76,12 @@ The following specify which files/extra groups are read (specified before remain
--binlog-do-db=name Tells the master it should log updates for the specified
database, and exclude all others not explicitly
mentioned.
+ --binlog-expire-logs-seconds=#
+ If non-zero, binary logs will be purged after
+ binlog_expire_logs_seconds seconds; It and
+ expire_logs_days are linked, such that changes in one are
+ converted into the other. Possible purges happen at
+ startup and at binary log rotation.
--binlog-file-cache-size=#
The size of file cache for the binary log
--binlog-format=name
@@ -268,7 +274,10 @@ The following specify which files/extra groups are read (specified before remain
constant optimization
--expire-logs-days=#
If non-zero, binary logs will be purged after
- expire_logs_days days; possible purges happen at startup
+ expire_logs_days days; It and binlog_expire_logs_seconds
+ are linked, such that changes in one are converted into
+ the other, presentable as a decimal value with 1/1000000
+ of the day precision; possible purges happen at startup
and at binary log rotation
--explicit-defaults-for-timestamp
This option causes CREATE TABLE to create all TIMESTAMP
@@ -351,7 +360,9 @@ The following specify which files/extra groups are read (specified before remain
--gtid-strict-mode Enforce strict seq_no ordering of events in the binary
log. Slave stops with an error if it encounters an event
that would cause it to generate an out-of-order binlog if
- executed.
+ executed. When ON the same server-id semisync-replicated
+ transactions that duplicate exising ones in binlog are
+ ignored without error and slave interruption.
-?, --help Display this help and exit.
--histogram-size=# Number of bytes used for a histogram. If set to 0, no
histograms are created by ANALYZE.
@@ -467,6 +478,9 @@ The following specify which files/extra groups are read (specified before remain
ALWAYS use row-based binary logging, the security issues
do not exist and the binary logging cannot break, so you
can safely set this to TRUE
+ --log-ddl-recovery=name
+ Path to file used for recovery of DDL statements after a
+ crash
--log-disabled-statements=name
Don't log certain types of statements to general log. Any
combination of: slave, sp
@@ -669,7 +683,7 @@ The following specify which files/extra groups are read (specified before remain
--old-mode=name Used to emulate old behavior from earlier MariaDB or
MySQL versions. Any combination of:
NO_DUP_KEY_WARNINGS_WITH_IGNORE, NO_PROGRESS_INFO,
- ZERO_DATE_TIME_CAST
+ ZERO_DATE_TIME_CAST, UTF8_IS_UTF8MB3
--old-passwords Use old password encryption method (needed for 4.0 and
older clients)
--old-style-user-limits
@@ -1471,6 +1485,7 @@ binlog-checksum CRC32
binlog-commit-wait-count 0
binlog-commit-wait-usec 100000
binlog-direct-non-transactional-updates FALSE
+binlog-expire-logs-seconds 0
binlog-file-cache-size 16384
binlog-format MIXED
binlog-optimize-thread-scheduling TRUE
@@ -1573,6 +1588,7 @@ log-bin-compress FALSE
log-bin-compress-min-len 256
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
+log-ddl-recovery ddl_recovery.log
log-disabled-statements sp
log-error
log-isam myisam.log
@@ -1592,7 +1608,7 @@ long-query-time 10
low-priority-updates FALSE
lower-case-table-names 1
master-info-file master.info
-master-retry-count 86400
+master-retry-count 100000
master-verify-checksum FALSE
max-allowed-packet 16777216
max-binlog-cache-size 18446744073709547520
@@ -1607,7 +1623,7 @@ max-join-size 18446744073709551615
max-length-for-sort-data 1024
max-password-errors 18446744073709551615
max-prepared-stmt-count 16382
-max-recursive-iterations 18446744073709551615
+max-recursive-iterations 1000
max-relay-log-size 1073741824
max-rowid-filter-size 131072
max-seeks-for-key 18446744073709551615
@@ -1639,7 +1655,7 @@ net-retry-count 10
net-write-timeout 60
old FALSE
old-alter-table DEFAULT
-old-mode
+old-mode UTF8_IS_UTF8MB3
old-passwords FALSE
old-style-user-limits FALSE
optimizer-max-sel-arg-weight 32000
@@ -1832,5 +1848,5 @@ userstat FALSE
verbose TRUE
wait-timeout 28800
-To see what variables a running MySQL server is using, type
-'mysqladmin variables' instead of 'mysqld --verbose --help'.
+To see what variables a running server is using, type
+'SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES' instead of 'mysqld --verbose --help' or 'mariadbd --verbose --help'.
diff --git a/mysql-test/main/mysqldump-max.test b/mysql-test/main/mysqldump-max.test
index 49e54d542b8..e85490b7352 100644
--- a/mysql-test/main/mysqldump-max.test
+++ b/mysql-test/main/mysqldump-max.test
@@ -1194,7 +1194,7 @@ source include/binlog_start_pos.inc;
let _BINLOG_START_POS= $binlog_start_pos;
--perl
my $f= "$ENV{MYSQLTEST_VARDIR}/tmp/mwl136.sql";
-my $pos=$ENV{_BINLOG_START_POS} + 739;
+my $pos=$ENV{_BINLOG_START_POS} + 757;
open F, '<', $f or die "Failed to open $f: $!\n";
while (<F>) {
s/$pos/<pos>/;
diff --git a/mysql-test/main/mysqldump-system,win.rdiff b/mysql-test/main/mysqldump-system,win.rdiff
index a46b422e95f..57ce772a452 100644
--- a/mysql-test/main/mysqldump-system,win.rdiff
+++ b/mysql-test/main/mysqldump-system,win.rdiff
@@ -1,21 +1,26 @@
--- mysqldump-system.result
+++ mysqldump-system,win.result
-@@ -442,7 +442,7 @@
+@@ -449,9 +449,9 @@
+ Table Checksum
+ mysql.roles_mapping 2510045525
mysql.time_zone_transition 3895294076
- mysql.plugin 0
- mysql.servers 2783974349
+-mysql.plugin 1587119305
++mysql.plugin 2184891911
+ mysql.servers 2079085450
-mysql.func 3241572444
+mysql.func 310494789
mysql.innodb_table_stats 347867921
mysql.table_stats 664320059
# Opps....
-@@ -477,7 +477,7 @@
+@@ -484,9 +484,9 @@
+ Table Checksum
+ mysql.roles_mapping 2510045525
mysql.time_zone_transition 3895294076
- mysql.plugin 0
- mysql.servers 2783974349
+-mysql.plugin 1587119305
++mysql.plugin 2184891911
+ mysql.servers 2079085450
-mysql.func 3241572444
+mysql.func 310494789
mysql.innodb_table_stats 347867921
mysql.table_stats 664320059
DROP FUNCTION IF EXISTS metaphon;
-
diff --git a/mysql-test/main/mysqldump-system.result b/mysql-test/main/mysqldump-system.result
index 2fa010b3e4e..12b4c763f5d 100644
--- a/mysql-test/main/mysqldump-system.result
+++ b/mysql-test/main/mysqldump-system.result
@@ -1,3 +1,4 @@
+install soname 'auth_test_plugin';
#
# MDEV-23630: mysqldump to logically dump system tables
#
@@ -9,13 +10,13 @@ insert into tables_priv select * from mysql.tables_priv;
delete from mysql.global_priv where host not in ('localhost');
flush privileges;
alter user 'mariadb.sys'@'localhost' ACCOUNT UNLOCK;
-create user USER;
+create user foobar IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
CREATE ROLE role_1;
CREATE ROLE role_2 WITH ADMIN role_1;
GRANT SHOW DATABASES ON *.* TO role_1;
-GRANT role_1 TO USER;
-GRANT role_2 TO USER;
-SET DEFAULT ROLE role_2 FOR USER;
+GRANT role_1 TO foobar;
+GRANT role_2 TO foobar;
+SET DEFAULT ROLE role_2 FOR foobar;
ALTER TABLE mysql.roles_mapping ORDER BY Host, User, Role;
set @save_innodb_stats_persistent= @@innodb_stats_persistent;
create table mysql.tz like mysql.time_zone_transition;
@@ -49,9 +50,11 @@ CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+INSTALL PLUGIN test_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
+INSTALL PLUGIN cleartext_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
CREATE USER `mariadb.sys`@`localhost` PASSWORD EXPIRE;
CREATE USER `root`@`localhost`;
-CREATE USER `USER`@`%`;
+CREATE USER `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
SELECT COALESCE(CURRENT_ROLE(),'NONE') into @current_role;
CREATE ROLE IF NOT EXISTS mariadb_dump_import_role;
GRANT mariadb_dump_import_role TO CURRENT_USER();
@@ -71,11 +74,11 @@ GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION;
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION;
/*M!100005 SET DEFAULT ROLE NONE FOR 'root'@'localhost' */;
/*!80001 ALTER USER 'root'@'localhost' DEFAULT ROLE NONE */;
-GRANT `role_1` TO `USER`@`%`;
-GRANT `role_2` TO `USER`@`%`;
-GRANT USAGE ON *.* TO `USER`@`%`;
-/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'USER'@'%' */;
-/*!80001 ALTER USER 'USER'@'%' DEFAULT ROLE 'role_2' */;
+GRANT `role_1` TO `foobar`@`%`;
+GRANT `role_2` TO `foobar`@`%`;
+GRANT USAGE ON *.* TO `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
+/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'foobar'@'%' */;
+/*!80001 ALTER USER 'foobar'@'%' DEFAULT ROLE 'role_2' */;
GRANT `role_2` TO `role_1` WITH ADMIN OPTION;
GRANT SHOW DATABASES ON *.* TO `role_1`;
GRANT USAGE ON *.* TO `role_2`;
@@ -173,6 +176,10 @@ UNLOCK TABLES;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+/*M!100401 UNINSTALL PLUGIN IF EXIST test_plugin_server */;
+INSTALL PLUGIN test_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
+/*M!100401 UNINSTALL PLUGIN IF EXIST cleartext_plugin_server */;
+INSTALL PLUGIN cleartext_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
DELIMITER |
/*M!100101 IF current_user()="'mariadb.sys'@'localhost'" THEN
SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'mariadb.sys'@'localhost''";
@@ -188,12 +195,12 @@ DELIMITER ;
/*!50701 DROP USER IF EXISTS 'root'@'localhost' */;
CREATE /*M!100103 OR REPLACE */ USER `root`@`localhost`;
DELIMITER |
-/*M!100101 IF current_user()="'USER'@'%'" THEN
- SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'USER'@'%''";
+/*M!100101 IF current_user()="'foobar'@'%'" THEN
+ SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'foobar'@'%''";
END IF */|
DELIMITER ;
-/*!50701 DROP USER IF EXISTS 'USER'@'%' */;
-CREATE /*M!100103 OR REPLACE */ USER `USER`@`%`;
+/*!50701 DROP USER IF EXISTS 'foobar'@'%' */;
+CREATE /*M!100103 OR REPLACE */ USER `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
SELECT COALESCE(CURRENT_ROLE(),'NONE') into @current_role;
CREATE ROLE IF NOT EXISTS mariadb_dump_import_role;
GRANT mariadb_dump_import_role TO CURRENT_USER();
@@ -215,11 +222,11 @@ GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION;
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION;
/*M!100005 SET DEFAULT ROLE NONE FOR 'root'@'localhost' */;
/*!80001 ALTER USER 'root'@'localhost' DEFAULT ROLE NONE */;
-GRANT `role_1` TO `USER`@`%`;
-GRANT `role_2` TO `USER`@`%`;
-GRANT USAGE ON *.* TO `USER`@`%`;
-/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'USER'@'%' */;
-/*!80001 ALTER USER 'USER'@'%' DEFAULT ROLE 'role_2' */;
+GRANT `role_1` TO `foobar`@`%`;
+GRANT `role_2` TO `foobar`@`%`;
+GRANT USAGE ON *.* TO `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
+/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'foobar'@'%' */;
+/*!80001 ALTER USER 'foobar'@'%' DEFAULT ROLE 'role_2' */;
GRANT `role_2` TO `role_1` WITH ADMIN OPTION;
GRANT SHOW DATABASES ON *.* TO `role_1`;
GRANT USAGE ON *.* TO `role_2`;
@@ -318,9 +325,11 @@ UNLOCK TABLES;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+INSTALL PLUGIN test_plugin_server /*M!100401 IF NOT EXISTS */ SONAME 'AUTH_TEST_PLUGIN_LIB';
+INSTALL PLUGIN cleartext_plugin_server /*M!100401 IF NOT EXISTS */ SONAME 'AUTH_TEST_PLUGIN_LIB';
CREATE USER IF NOT EXISTS `mariadb.sys`@`localhost` PASSWORD EXPIRE;
CREATE USER IF NOT EXISTS `root`@`localhost`;
-CREATE USER IF NOT EXISTS `USER`@`%`;
+CREATE USER IF NOT EXISTS `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
SELECT COALESCE(CURRENT_ROLE(),'NONE') into @current_role;
CREATE ROLE IF NOT EXISTS mariadb_dump_import_role;
GRANT mariadb_dump_import_role TO CURRENT_USER();
@@ -340,11 +349,11 @@ GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION;
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION;
/*M!100005 SET DEFAULT ROLE NONE FOR 'root'@'localhost' */;
/*!80001 ALTER USER 'root'@'localhost' DEFAULT ROLE NONE */;
-GRANT `role_1` TO `USER`@`%`;
-GRANT `role_2` TO `USER`@`%`;
-GRANT USAGE ON *.* TO `USER`@`%`;
-/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'USER'@'%' */;
-/*!80001 ALTER USER 'USER'@'%' DEFAULT ROLE 'role_2' */;
+GRANT `role_1` TO `foobar`@`%`;
+GRANT `role_2` TO `foobar`@`%`;
+GRANT USAGE ON *.* TO `foobar`@`%` IDENTIFIED VIA test_plugin_server USING 'plug_dest';
+/*M!100005 SET DEFAULT ROLE 'role_2' FOR 'foobar'@'%' */;
+/*!80001 ALTER USER 'foobar'@'%' DEFAULT ROLE 'role_2' */;
GRANT `role_2` TO `role_1` WITH ADMIN OPTION;
GRANT SHOW DATABASES ON *.* TO `role_1`;
GRANT USAGE ON *.* TO `role_2`;
@@ -430,7 +439,7 @@ UNLOCK TABLES;
SELECT * FROM mysql.global_priv ORDER BY User,Host;
Host User Priv
-% USER {"access":0,"version_id":VERSION,"plugin":"mysql_native_password","authentication_string":"","password_last_changed":NOW,"default_role":"role_2"}
+% foobar {"access":0,"version_id":VERSION,"plugin":"test_plugin_server","authentication_string":"plug_dest","password_last_changed":NOW,"default_role":"role_2"}
localhost mariadb.sys {"access":0,"plugin":"mysql_native_password","authentication_string":"","account_locked":false,"password_last_changed":NOW,"version_id":VERSION}
role_1 {"access":16384,"version_id":VERSION,"is_role":true}
role_2 {"access":0,"version_id":VERSION,"is_role":true}
@@ -438,10 +447,10 @@ localhost root {"access":18446744073709551615}
CHECKSUM TABLE mysql.roles_mapping, mysql.time_zone_transition, mysql.plugin,
mysql.servers, mysql.func, mysql.innodb_table_stats, mysql.table_stats;
Table Checksum
-mysql.roles_mapping 3150178430
+mysql.roles_mapping 2510045525
mysql.time_zone_transition 3895294076
-mysql.plugin 0
-mysql.servers 2783974349
+mysql.plugin 1587119305
+mysql.servers 2079085450
mysql.func 3241572444
mysql.innodb_table_stats 347867921
mysql.table_stats 664320059
@@ -450,7 +459,7 @@ CREATE USER mariadb_test_restore IDENTIFIED BY 'getitback';
GRANT ALL ON *.* TO mariadb_test_restore WITH GRANT OPTION;
GRANT PROXY ON ''@'%' TO mariadb_test_restore WITH GRANT OPTION;
GRANT SUPER, CREATE USER /*M!100502 ,FEDERATED ADMIN */ ON *.* TO mariadb_test_restore WITH GRANT OPTION;
-drop user USER;
+drop user foobar;
delete from mysql.table_stats;
delete from mysql.innodb_table_stats;
delete from mysql.time_zone_transition;
@@ -465,7 +474,7 @@ set time_zone= @@global.time_zone;
DROP USER mariadb_test_restore;
SELECT * FROM mysql.global_priv ORDER BY User,Host;
Host User Priv
-% USER {"access":0,"version_id":VERSION,"plugin":"mysql_native_password","authentication_string":"","password_last_changed":NOW,"default_role":"role_2"}
+% foobar {"access":0,"version_id":VERSION,"plugin":"test_plugin_server","authentication_string":"plug_dest","password_last_changed":NOW,"default_role":"role_2"}
localhost mariadb.sys {"access":0,"version_id":VERSION,"plugin":"mysql_native_password","authentication_string":"","password_last_changed":NOW,"password_lifetime":-1,"default_role":""}
role_1 {"access":16384,"version_id":VERSION,"is_role":true}
role_2 {"access":0,"version_id":VERSION,"is_role":true}
@@ -473,10 +482,10 @@ localhost root {"access":549755813887,"version_id":VERSION,"plugin":"mysql_nativ
CHECKSUM TABLE mysql.roles_mapping, mysql.time_zone_transition, mysql.plugin,
mysql.servers, mysql.func, mysql.innodb_table_stats, mysql.table_stats;
Table Checksum
-mysql.roles_mapping 3150178430
+mysql.roles_mapping 2510045525
mysql.time_zone_transition 3895294076
-mysql.plugin 0
-mysql.servers 2783974349
+mysql.plugin 1587119305
+mysql.servers 2079085450
mysql.func 3241572444
mysql.innodb_table_stats 347867921
mysql.table_stats 664320059
@@ -490,8 +499,9 @@ DELETE FROM mysql.innodb_table_stats WHERE database_name='mysql' and table_name
drop table mysql.tz;
DROP ROLE role_2;
DROP ROLE role_1;
-drop user USER;
+drop user foobar;
replace into mysql.global_priv select * from backup_users;
replace into mysql.tables_priv select * from tables_priv;
flush privileges;
drop table backup_users, tables_priv;
+uninstall soname 'auth_test_plugin';
diff --git a/mysql-test/main/mysqldump-system.test b/mysql-test/main/mysqldump-system.test
index c1965410167..7e85fcc1a11 100644
--- a/mysql-test/main/mysqldump-system.test
+++ b/mysql-test/main/mysqldump-system.test
@@ -3,9 +3,10 @@
--source include/have_udf.inc
--source include/platform.inc
-if (!$AUTH_SOCKET_SO) {
- --skip Need auth socket plugin
+if (!$AUTH_TEST_PLUGIN_SO) {
+ --skip Need auth test plugin
}
+install soname 'auth_test_plugin';
--echo #
--echo # MDEV-23630: mysqldump to logically dump system tables
@@ -21,7 +22,7 @@ flush privileges;
# mariadb.sys because of MDEV-24098
alter user 'mariadb.sys'@'localhost' ACCOUNT UNLOCK;
-create user USER;
+create user foobar IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest';
# time zone data already loaded
@@ -29,9 +30,9 @@ CREATE ROLE role_1;
CREATE ROLE role_2 WITH ADMIN role_1;
GRANT SHOW DATABASES ON *.* TO role_1;
-GRANT role_1 TO USER;
-GRANT role_2 TO USER;
-SET DEFAULT ROLE role_2 FOR USER;
+GRANT role_1 TO foobar;
+GRANT role_2 TO foobar;
+SET DEFAULT ROLE role_2 FOR foobar;
ALTER TABLE mysql.roles_mapping ORDER BY Host, User, Role;
@@ -66,7 +67,7 @@ eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
--echo # mysqldump of system tables with --system=all
--echo #
---replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
+--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB $AUTH_TEST_PLUGIN_SO AUTH_TEST_PLUGIN_LIB
--exec $MYSQL_DUMP --skip-comments --system=all
@@ -74,7 +75,7 @@ eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
--echo # mysqldump of system tables with --system=all --replace
--echo #
---replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
+--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB $AUTH_TEST_PLUGIN_SO AUTH_TEST_PLUGIN_LIB
--exec $MYSQL_DUMP --skip-comments --system=all --replace
@@ -85,7 +86,7 @@ eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO";
--echo # mysqldump of system tables with --system=all --insert-ignore
--echo #
---replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB
+--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB $AUTH_TEST_PLUGIN_SO AUTH_TEST_PLUGIN_LIB
--exec $MYSQL_DUMP --skip-comments --system=all --insert-ignore
@@ -107,7 +108,7 @@ GRANT ALL ON *.* TO mariadb_test_restore WITH GRANT OPTION;
GRANT PROXY ON ''@'%' TO mariadb_test_restore WITH GRANT OPTION;
GRANT SUPER, CREATE USER /*M!100502 ,FEDERATED ADMIN */ ON *.* TO mariadb_test_restore WITH GRANT OPTION;
-drop user USER;
+drop user foobar;
delete from mysql.table_stats;
delete from mysql.innodb_table_stats;
delete from mysql.time_zone_transition;
@@ -151,9 +152,10 @@ drop table mysql.tz;
DROP ROLE role_2;
DROP ROLE role_1;
-drop user USER;
+drop user foobar;
replace into mysql.global_priv select * from backup_users;
replace into mysql.tables_priv select * from tables_priv;
flush privileges;
drop table backup_users, tables_priv;
+uninstall soname 'auth_test_plugin';
diff --git a/mysql-test/main/mysqldump-utf8mb4.result b/mysql-test/main/mysqldump-utf8mb4.result
index 3bafd6da6c9..50c23c5efa9 100644
--- a/mysql-test/main/mysqldump-utf8mb4.result
+++ b/mysql-test/main/mysqldump-utf8mb4.result
@@ -18,7 +18,7 @@ Testing XML format output
<field Field="point" Type="varchar(10)" Null="NO" Key="PRI" Extra="" Comment="" />
<field Field="data" Type="varchar(10)" Null="YES" Key="" Default="NULL" Extra="" Comment="" />
<field Field="comment" Type="varchar(64)" Null="YES" Key="" Default="NULL" Extra="" Comment="" />
- <key Table="t1" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="point" Collation="A" Cardinality="1" Null="" Index_type="BTREE" Comment="" Index_comment="" />
+ <key Table="t1" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="point" Collation="A" Cardinality="1" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
</table_structure>
<table_data name="t1">
<row>
diff --git a/mysql-test/main/mysqldump.result b/mysql-test/main/mysqldump.result
index 8df3286f388..2fdd3bbadd6 100644
--- a/mysql-test/main/mysqldump.result
+++ b/mysql-test/main/mysqldump.result
@@ -12,7 +12,7 @@ INSERT INTO t1 VALUES (1), (2);
<database name="test">
<table_structure name="t1">
<field Field="a" Type="int(11)" Null="YES" Key="MUL" Default="NULL" Extra="" Comment="" />
- <key Table="t1" Non_unique="1" Key_name="a" Seq_in_index="1" Column_name="a" Collation="A" Null="YES" Index_type="BTREE" Comment="" Index_comment="" />
+ <key Table="t1" Non_unique="1" Key_name="a" Seq_in_index="1" Column_name="a" Collation="A" Null="YES" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
</table_structure>
<table_data name="t1">
<row>
@@ -3709,7 +3709,7 @@ CREATE TEMPORARY TABLE `TABLES` (
`TABLE_COMMENT` varchar(2048) NOT NULL,
`MAX_INDEX_LENGTH` bigint(21) unsigned,
`TEMPORARY` varchar(1)
-) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
#
# Bug#19745 mysqldump --xml produces invalid xml
@@ -4708,7 +4708,7 @@ ALTER DATABASE `test-database` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `test` (
`c1` varchar(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
ALTER DATABASE `test-database` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
@@ -4727,7 +4727,7 @@ DELIMITER ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
-ALTER DATABASE `test-database` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
+ALTER DATABASE `test-database` CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci ;
DROP DATABASE `test-database`;
USE test;
#
@@ -5166,7 +5166,7 @@ RETURN CONCAT(']]>, ', c1, '!');
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="BUG52792">
<routines>
- <routine Function="straße" sql_mode="" character_set_client="utf8" collation_connection="utf8_general_ci" Database_Collation="latin1_swedish_ci">
+ <routine Function="straße" sql_mode="" character_set_client="utf8mb3" collation_connection="utf8mb3_general_ci" Database_Collation="latin1_swedish_ci">
<![CDATA[
CREATE DEFINER=`root`@`localhost` FUNCTION `straße`(c1 CHAR(20)) RETURNS char(50) CHARSET latin1 COLLATE latin1_swedish_ci
DETERMINISTIC
@@ -5273,7 +5273,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
SHOW CREATE TABLE mysql.slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -5290,7 +5290,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
SET @@global.log_output= @old_log_output_state;
SET @@global.slow_query_log= @old_slow_query_log_state;
SET @@global.general_log= @old_general_log_state;
@@ -5372,11 +5372,11 @@ SHOW TRIGGERS FROM bug25717383;
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trig
one INSERT tab
-one SET NEW.a = 1 BEFORE # root@localhost utf8 utf8_general_ci latin1_swedish_ci
+one SET NEW.a = 1 BEFORE # root@localhost utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SHOW EVENTS FROM bug25717383;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
bug25717383 event
-one root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci latin1_swedish_ci
+one root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL ENABLED 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='bug25717383' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
@@ -5393,11 +5393,11 @@ SHOW TRIGGERS FROM bug25717383;
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
trig
one INSERT tab
-one SET NEW.a = 1 BEFORE # root@localhost utf8 utf8_general_ci latin1_swedish_ci
+one SET NEW.a = 1 BEFORE # root@localhost utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SHOW EVENTS FROM bug25717383;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
bug25717383 event
-one root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL ENABLED 1 utf8 utf8_general_ci latin1_swedish_ci
+one root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL ENABLED 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='bug25717383' AND ROUTINE_TYPE= 'PROCEDURE'
ORDER BY ROUTINE_NAME;
@@ -5405,8 +5405,8 @@ ROUTINE_NAME
proc
one
DROP DATABASE bug25717383;
-mariadb-dump: Got error: 2005: "Unknown MySQL server host 'unknownhost'" when trying to connect
-mariadb-dump: Couldn't execute 'SHOW SLAVE STATUS': MySQL server has gone away (2006)
+mariadb-dump: Got error: 2005: "Unknown server host 'unknownhost'" when trying to connect
+mariadb-dump: Couldn't execute 'SHOW SLAVE STATUS': Server has gone away (2006)
Usage: mariadb-dump [OPTIONS] database [tables]
OR mariadb-dump [OPTIONS] --databases DB1 [DB2 DB3...]
OR mariadb-dump [OPTIONS] --all-databases
@@ -5425,9 +5425,9 @@ ALTER DATABASE `a\"'``b` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
BEGIN END ;;
@@ -5436,7 +5436,7 @@ DELIMITER ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
-ALTER DATABASE `a\"'``b` CHARACTER SET utf8 COLLATE utf8_general_ci ;
+ALTER DATABASE `a\"'``b` CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci ;
DROP DATABASE `a\"'``b`;
use test;
#
@@ -5468,21 +5468,21 @@ CREATE VIEW nonunique_table_view_name AS SELECT 1;
##################################################
# --compact --databases db1 db2
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `db1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `basetable` (
`id` smallint(6) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `basetable` VALUES (5),(6);
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_name` (
`i3` smallint(6) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci INSERT_METHOD=LAST UNION=(`basetable`);
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci INSERT_METHOD=LAST UNION=(`basetable`);
/*!40101 SET character_set_client = @saved_cs_client */;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
@@ -5490,7 +5490,7 @@ SET character_set_client = utf8;
1 AS `1` */;
SET character_set_client = @saved_cs_client;
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db2` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `db2`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5498,14 +5498,14 @@ USE `db2`;
CREATE TABLE `nonunique_table_name` (
`i1` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
UNIQUE KEY `i1` (`i1`)
-) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_name` VALUES (1),(2);
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_view_name` (
`i2` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_view_name` VALUES (3),(4);
@@ -5514,9 +5514,9 @@ USE `db1`;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
-/*!50001 SET character_set_client = utf8 */;
-/*!50001 SET character_set_results = utf8 */;
-/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 SET character_set_client = utf8mb3 */;
+/*!50001 SET character_set_results = utf8mb3 */;
+/*!50001 SET collation_connection = utf8mb3_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `nonunique_table_view_name` AS select 1 AS `1` */;
@@ -5534,21 +5534,21 @@ USE `db2`;
CREATE TABLE `nonunique_table_name` (
`i1` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
UNIQUE KEY `i1` (`i1`)
-) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_name` VALUES (1),(2);
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_view_name` (
`i2` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_view_name` VALUES (3),(4);
##################################################
# --compact --delayed-insert --no-data-med=0 --databases db2 db1
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db2` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `db2`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5556,32 +5556,32 @@ USE `db2`;
CREATE TABLE `nonunique_table_name` (
`i1` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
UNIQUE KEY `i1` (`i1`)
-) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT DELAYED INTO `nonunique_table_name` VALUES (1),(2);
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_view_name` (
`i2` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_view_name` VALUES (3),(4);
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `db1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `basetable` (
`id` smallint(6) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT DELAYED INTO `basetable` VALUES (5),(6);
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nonunique_table_name` (
`i3` smallint(6) DEFAULT NULL
-) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci INSERT_METHOD=LAST UNION=(`basetable`);
+) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci INSERT_METHOD=LAST UNION=(`basetable`);
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `nonunique_table_name` VALUES (5),(6);
SET @saved_cs_client = @@character_set_client;
@@ -5597,9 +5597,9 @@ USE `db1`;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
-/*!50001 SET character_set_client = utf8 */;
-/*!50001 SET character_set_results = utf8 */;
-/*!50001 SET collation_connection = utf8_general_ci */;
+/*!50001 SET character_set_client = utf8mb3 */;
+/*!50001 SET character_set_results = utf8mb3 */;
+/*!50001 SET collation_connection = utf8mb3_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `nonunique_table_view_name` AS select 1 AS `1` */;
@@ -5687,9 +5687,9 @@ USE `test`;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8 */ ;
-/*!50003 SET character_set_results = utf8 */ ;
-/*!50003 SET collation_connection = utf8_general_ci */ ;
+/*!50003 SET character_set_client = utf8mb3 */ ;
+/*!50003 SET character_set_results = utf8mb3 */ ;
+/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
/*!50032 DROP TRIGGER IF EXISTS tt1_t1 */;
@@ -5738,7 +5738,7 @@ CREATE TABLE IF NOT EXISTS `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log';
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -5756,7 +5756,7 @@ CREATE TABLE IF NOT EXISTS `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `innodb_index_stats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5771,7 +5771,7 @@ CREATE TABLE `innodb_index_stats` (
`sample_size` bigint(20) unsigned DEFAULT NULL,
`stat_description` varchar(1024) NOT NULL,
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `innodb_table_stats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5784,7 +5784,7 @@ CREATE TABLE `innodb_table_stats` (
`clustered_index_size` bigint(20) unsigned NOT NULL,
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`database_name`,`table_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -5798,7 +5798,7 @@ CREATE TABLE IF NOT EXISTS `transaction_registry` (
UNIQUE KEY `commit_id` (`commit_id`),
KEY `begin_timestamp` (`begin_timestamp`),
KEY `commit_timestamp` (`commit_timestamp`,`transaction_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -5833,7 +5833,7 @@ CREATE TABLE IF NOT EXISTS `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log';
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -5851,7 +5851,7 @@ CREATE TABLE IF NOT EXISTS `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `innodb_index_stats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5866,7 +5866,7 @@ CREATE TABLE `innodb_index_stats` (
`sample_size` bigint(20) unsigned DEFAULT NULL,
`stat_description` varchar(1024) NOT NULL,
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
LOCK TABLES `innodb_index_stats` WRITE;
@@ -5884,7 +5884,7 @@ CREATE TABLE `innodb_table_stats` (
`clustered_index_size` bigint(20) unsigned NOT NULL,
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`database_name`,`table_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
LOCK TABLES `innodb_table_stats` WRITE;
@@ -5903,7 +5903,7 @@ CREATE TABLE IF NOT EXISTS `transaction_registry` (
UNIQUE KEY `commit_id` (`commit_id`),
KEY `begin_timestamp` (`begin_timestamp`),
KEY `commit_timestamp` (`commit_timestamp`,`transaction_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -5938,7 +5938,7 @@ CREATE TABLE IF NOT EXISTS `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log';
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
@@ -5956,7 +5956,7 @@ CREATE TABLE IF NOT EXISTS `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log';
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `innodb_index_stats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -5971,7 +5971,7 @@ CREATE TABLE `innodb_index_stats` (
`sample_size` bigint(20) unsigned DEFAULT NULL,
`stat_description` varchar(1024) NOT NULL,
PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
LOCK TABLES `innodb_index_stats` WRITE;
@@ -5989,7 +5989,7 @@ CREATE TABLE `innodb_table_stats` (
`clustered_index_size` bigint(20) unsigned NOT NULL,
`sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`database_name`,`table_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
LOCK TABLES `innodb_table_stats` WRITE;
@@ -6008,7 +6008,7 @@ CREATE TABLE IF NOT EXISTS `transaction_registry` (
UNIQUE KEY `commit_id` (`commit_id`),
KEY `begin_timestamp` (`begin_timestamp`),
KEY `commit_timestamp` (`commit_timestamp`,`transaction_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -6338,7 +6338,7 @@ use test2;
SHOW CREATE PACKAGE pkg;
Package sql_mode Create Package character_set_client collation_connection Database Collation
pkg PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT CREATE DEFINER="root"@"localhost" PACKAGE "pkg" AS
-END utf8 utf8_general_ci latin1_swedish_ci
+END utf8mb3 utf8mb3_general_ci latin1_swedish_ci
DROP DATABASE test1;
DROP DATABASE test2;
SET sql_mode=@save_sql_mode;
@@ -6387,7 +6387,7 @@ DROP TABLE IF EXISTS mysql.column_stats;
<field Field="server_id" Type="int(10) unsigned" Null="NO" Key="" Extra="" Comment="" />
<field Field="command_type" Type="varchar(64)" Null="NO" Key="" Extra="" Comment="" />
<field Field="argument" Type="mediumtext" Null="NO" Key="" Extra="" Comment="" />
- <options Name="general_log" Engine="CSV" Version="10" Row_format="Dynamic" Rows="2" Avg_row_length="0" Data_length="0" Max_data_length="0" Index_length="0" Data_free="0" Collation="utf8_general_ci" Create_options="" Comment="General log" Max_index_length="0" Temporary="N" />
+ <options Name="general_log" Engine="CSV" Version="10" Row_format="Dynamic" Rows="2" Avg_row_length="0" Data_length="0" Max_data_length="0" Index_length="0" Data_free="0" Collation="utf8mb3_general_ci" Create_options="" Comment="General log" Max_index_length="0" Temporary="N" />
</table_structure>
<table_structure name="slow_log">
<field Field="start_time" Type="timestamp(6)" Null="NO" Key="" Default="current_timestamp(6)" Extra="on update current_timestamp(6)" Comment="" />
@@ -6403,7 +6403,7 @@ DROP TABLE IF EXISTS mysql.column_stats;
<field Field="sql_text" Type="mediumtext" Null="NO" Key="" Extra="" Comment="" />
<field Field="thread_id" Type="bigint(21) unsigned" Null="NO" Key="" Extra="" Comment="" />
<field Field="rows_affected" Type="int(11)" Null="NO" Key="" Extra="" Comment="" />
- <options Name="slow_log" Engine="CSV" Version="10" Row_format="Dynamic" Rows="2" Avg_row_length="0" Data_length="0" Max_data_length="0" Index_length="0" Data_free="0" Collation="utf8_general_ci" Create_options="" Comment="Slow log" Max_index_length="0" Temporary="N" />
+ <options Name="slow_log" Engine="CSV" Version="10" Row_format="Dynamic" Rows="2" Avg_row_length="0" Data_length="0" Max_data_length="0" Index_length="0" Data_free="0" Collation="utf8mb3_general_ci" Create_options="" Comment="Slow log" Max_index_length="0" Temporary="N" />
</table_structure>
/*!50106 SET GLOBAL LOG_OUTPUT=@save_log_output*/;
@@ -6414,12 +6414,12 @@ DROP TABLE IF EXISTS mysql.column_stats;
<field Field="begin_timestamp" Type="timestamp(6)" Null="NO" Key="MUL" Default="'0000-00-00 00:00:00.000000'" Extra="" Comment="" />
<field Field="commit_timestamp" Type="timestamp(6)" Null="NO" Key="MUL" Default="'0000-00-00 00:00:00.000000'" Extra="" Comment="" />
<field Field="isolation_level" Type="enum('READ-UNCOMMITTED','READ-COMMITTED','REPEATABLE-READ','SERIALIZABLE')" Null="NO" Key="" Extra="" Comment="" />
- <key Table="transaction_registry" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="transaction_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" />
- <key Table="transaction_registry" Non_unique="0" Key_name="commit_id" Seq_in_index="1" Column_name="commit_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" />
- <key Table="transaction_registry" Non_unique="1" Key_name="begin_timestamp" Seq_in_index="1" Column_name="begin_timestamp" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" />
- <key Table="transaction_registry" Non_unique="1" Key_name="commit_timestamp" Seq_in_index="1" Column_name="commit_timestamp" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" />
- <key Table="transaction_registry" Non_unique="1" Key_name="commit_timestamp" Seq_in_index="2" Column_name="transaction_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" />
- <options Name="transaction_registry" Engine="InnoDB" Version="10" Row_format="Dynamic" Rows="0" Avg_row_length="0" Data_length="16384" Max_data_length="0" Index_length="49152" Data_free="0" Create_time="TIMESTAMP" Collation="utf8_bin" Create_options="stats_persistent=0" Comment="" Max_index_length="0" Temporary="N" />
+ <key Table="transaction_registry" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="transaction_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
+ <key Table="transaction_registry" Non_unique="0" Key_name="commit_id" Seq_in_index="1" Column_name="commit_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
+ <key Table="transaction_registry" Non_unique="1" Key_name="begin_timestamp" Seq_in_index="1" Column_name="begin_timestamp" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
+ <key Table="transaction_registry" Non_unique="1" Key_name="commit_timestamp" Seq_in_index="1" Column_name="commit_timestamp" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
+ <key Table="transaction_registry" Non_unique="1" Key_name="commit_timestamp" Seq_in_index="2" Column_name="transaction_id" Collation="A" Cardinality="0" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignored="NO" />
+ <options Name="transaction_registry" Engine="InnoDB" Version="10" Row_format="Dynamic" Rows="0" Avg_row_length="0" Data_length="16384" Max_data_length="0" Index_length="49152" Data_free="0" Create_time="TIMESTAMP" Collation="utf8mb3_bin" Create_options="stats_persistent=0" Comment="" Max_index_length="0" Temporary="N" />
</table_structure>
</database>
<database name="test1">
diff --git a/mysql-test/main/mysqldump.test b/mysql-test/main/mysqldump.test
index a7bdb8e5dc6..7dc3cfe8558 100644
--- a/mysql-test/main/mysqldump.test
+++ b/mysql-test/main/mysqldump.test
@@ -11,7 +11,7 @@ call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
--source include/have_log_bin.inc
# utf8 is required
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
# Save the initial number of concurrent sessions
@@ -1037,10 +1037,12 @@ begin
return f1;
end //
+--enable_prepare_warnings
CREATE PROCEDURE bug9056_proc2(OUT a INT)
BEGIN
select sum(id) from t1 into a;
END //
+--disable_prepare_warnings
DELIMITER ;//
diff --git a/mysql-test/main/mysqlslap.result b/mysql-test/main/mysqlslap.result
index 791cb5ac6b3..78560903fb7 100644
--- a/mysql-test/main/mysqlslap.result
+++ b/mysql-test/main/mysqlslap.result
@@ -230,6 +230,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
# 'bug58090' database should be present.
SHOW DATABASES;
@@ -239,6 +240,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
DROP DATABASE bug58090;
#
diff --git a/mysql-test/main/mysqltest.result b/mysql-test/main/mysqltest.result
index d4309ffe97e..73f2c8851f9 100644
--- a/mysql-test/main/mysqltest.result
+++ b/mysql-test/main/mysqltest.result
@@ -8,7 +8,7 @@ select otto from (select 1 as otto) as t1;
otto
1
select friedrich from (select 1 as otto) as t1;
-mysqltest: At line 1: query 'select friedrich from (select 1 as otto) as t1' failed: 1054: Unknown column 'friedrich' in 'field list'
+mysqltest: At line 1: query 'select friedrich from (select 1 as otto) as t1' failed: ER_BAD_FIELD_ERROR (1054): Unknown column 'friedrich' in 'field list'
select friedrich from (select 1 as otto) as t1;
ERROR 42S22: Unknown column 'friedrich' in 'field list'
select otto from (select 1 as otto) as t1;
@@ -155,7 +155,7 @@ select 1146 as "after_!errno_masked_error" ;
after_!errno_masked_error
1146
select 3 from t1;
-mysqltest: At line 1: query 'select 3 from t1' failed with wrong errno 1146: 'Table 'test.t1' doesn't exist', instead of 1000...
+mysqltest: At line 1: query 'select 3 from t1' failed with wrong errno ER_NO_SUCH_TABLE (1146): 'Table 'test.t1' doesn't exist', instead of ER_HASHCHK (1000)...
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'garbage' at line 1
is empty
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'nonsense' at line 1
@@ -169,7 +169,7 @@ after_--enable_abort_on_error
select 3 from t1 ;
ERROR 42S02: Table 'test.t1' doesn't exist
select 3 from t1;
-mysqltest: At line 1: query 'select 3 from t1' failed with wrong errno 1146: 'Table 'test.t1' doesn't exist', instead of 1064...
+mysqltest: At line 1: query 'select 3 from t1' failed with wrong errno ER_NO_SUCH_TABLE (1146): 'Table 'test.t1' doesn't exist', instead of ER_PARSE_ERROR (1064)...
garbage;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'garbage' at line 1
select 2;
@@ -360,7 +360,7 @@ insert into t1 values ('$dollar');
$dollar
`select 42`
drop table t1;
-mysqltest: At line 1: query 'let $var2= `failing query`' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'failing query' at line 1
+mysqltest: At line 1: query 'let $var2= `failing query`' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'failing query' at line 1
mysqltest: At line 1: Missing required argument 'filename' to command 'source'
mysqltest: At line 1: Could not open 'non_existingFile' for reading, errno: 2
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql":
@@ -383,7 +383,7 @@ At line 1: Source directives are nesting too deep
garbage ;
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql":
included from <stdin> at line 1:
-At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'garbage' at line 1
+At line 1: query 'garbage ' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'garbage' at line 1
2 = outer loop variable after while
here is the sourced script
@@ -520,7 +520,7 @@ mysqltest: At line 1: Missing '{' after while. Found "dec $i"
mysqltest: At line 1: Stray '}' - end of block before beginning
mysqltest: At line 1: Stray 'end' command - end of block before beginning
{;
-mysqltest: At line 1: query '{' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '{' at line 1
+mysqltest: At line 1: query '{' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '{' at line 1
mysqltest: At line 1: Missing '{' after while. Found "echo hej"
mysqltest: At line 3: Missing end of block
mysqltest: At line 3: Missing end of block
@@ -560,7 +560,7 @@ mysqltest: At line 1: Missing required argument 'connection name' to command 'co
mysqltest: At line 1: Missing required argument 'connection name' to command 'connect'
mysqltest: At line 1: Missing required argument 'host' to command 'connect'
mysqltest: At line 1: Missing required argument 'host' to command 'connect'
-mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1049: Unknown database 'illegal_db'
+mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: ER_BAD_DB_ERROR (1049): Unknown database 'illegal_db'
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP
200 connects succeeded
@@ -631,12 +631,12 @@ insertz 'error query'||||
mysqltest: At line 3: query 'create table t1 (a int primary key);
insert into t1 values (1);
select 'select-me';
-insertz 'error query'' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'insertz 'error query'' at line 1
+insertz 'error query'' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'insertz 'error query'' at line 1
drop table t1;
mysqltest: At line 3: query 'create table t1 (a int primary key);
insert into t1 values (1);
select 'select-me';
-insertz 'error query'' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'insertz 'error query'' at line 1
+insertz 'error query'' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'insertz 'error query'' at line 1
drop table t1;
Multi statement using expected error
create table t1 (a int primary key);
@@ -931,7 +931,7 @@ mysqltest: At line 1: Could not find column 'column_not_exists' in the result of
mysqltest: At line 1: Query 'SET @A = 1' didn't return a result set
mysqltest: At line 1: Could not find column '1 AS B' in the result of 'SELECT 1 AS A'
value= No such row
-mysqltest: At line 1: query 'let $value= query_get_value(SHOW COLNS FROM t1, Field, 1)' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COLNS FROM t1' at line 1
+mysqltest: At line 1: query 'let $value= query_get_value(SHOW COLNS FROM t1, Field, 1)' failed: ER_PARSE_ERROR (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COLNS FROM t1' at line 1
Field Type Null Key Default Extra
a int(11) YES -><- NULL
@@ -946,9 +946,9 @@ a int(11) YES NULL
b varchar(255) YES NULL
c datetime YES NULL
drop table t1;
-mysqltest: At line 1: query 'change_user root,,inexistent' failed: 1049: Unknown database 'inexistent'
-mysqltest: At line 1: query 'change_user inexistent,,test' failed: 1045: Access denied for user 'inexistent'@'localhost' (using password: NO)
-mysqltest: At line 1: query 'change_user root,inexistent,test' failed: 1045: Access denied for user 'root'@'localhost' (using password: YES)
+mysqltest: At line 1: query 'change_user root,,inexistent' failed: ER_BAD_DB_ERROR (1049): Unknown database 'inexistent'
+mysqltest: At line 1: query 'change_user inexistent,,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'inexistent'@'localhost' (using password: NO)
+mysqltest: At line 1: query 'change_user root,inexistent,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'root'@'localhost' (using password: YES)
REPLACED_FILE1.txt
file1.txt
file2.txt
diff --git a/mysql-test/main/mysqltest_cont_on_error.result b/mysql-test/main/mysqltest_cont_on_error.result
index eaa17028f8d..352799deb06 100644
--- a/mysql-test/main/mysqltest_cont_on_error.result
+++ b/mysql-test/main/mysqltest_cont_on_error.result
@@ -1,7 +1,7 @@
select error;
-mysqltest: At line 1: query 'select error' failed: 1054: Unknown column 'error' in 'field list'
+mysqltest: At line 1: query 'select error' failed: ER_BAD_FIELD_ERROR (1054): Unknown column 'error' in 'field list'
SELECT ERROR;
-mysqltest: At line 1: query 'SELECT ERROR' failed: 1054: Unknown column 'ERROR' in 'field list'
+mysqltest: At line 1: query 'SELECT ERROR' failed: ER_BAD_FIELD_ERROR (1054): Unknown column 'ERROR' in 'field list'
SELECT 2;
2
2
diff --git a/mysql-test/main/mysqltest_tracking_info.result b/mysql-test/main/mysqltest_tracking_info.result
index 2a58ba430ca..61bb3f2d1e2 100644
--- a/mysql-test/main/mysqltest_tracking_info.result
+++ b/mysql-test/main/mysqltest_tracking_info.result
@@ -7,7 +7,7 @@ SET @@session.session_track_system_variables='character_set_connection';
SET NAMES 'utf8';
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
-- character_set_connection
--- utf8
+-- utf8mb3
SET NAMES 'big5';
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
@@ -18,14 +18,14 @@ SET NAMES 'big5';
SET NAMES 'utf8';
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
-- character_set_connection
--- utf8
+-- utf8mb3
SET NAMES 'big5';
# tracking info on
SET NAMES 'utf8';
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
-- character_set_connection
--- utf8
+-- utf8mb3
# tracking info off once
SET NAMES 'big5';
diff --git a/mysql-test/main/mysqltest_tracking_info.test b/mysql-test/main/mysqltest_tracking_info.test
index a3dfbba53c0..2be3e9344b9 100644
--- a/mysql-test/main/mysqltest_tracking_info.test
+++ b/mysql-test/main/mysqltest_tracking_info.test
@@ -84,4 +84,10 @@ SET SESSION session_track_system_variables=NULL;
#--disable_session_track_info
#set @@session.session_track_user_variables=0;
+#--echo #
+#--echo # MDEV-22709 Assertion `store.length() <= (256L*256L*256L-1)' failed in net_send_ok
+#--echo #
+#SET SESSION session_track_user_variables=1;
+#SET @inserted_value=REPEAT(1,16777180); # Only crashes when >=16777180 (max = 16777216)
+
--echo # End of 10.5 tests
diff --git a/mysql-test/main/named_pipe.result b/mysql-test/main/named_pipe.result
index 9fc7abd79f5..2baa3471ec9 100644
--- a/mysql-test/main/named_pipe.result
+++ b/mysql-test/main/named_pipe.result
@@ -2091,10 +2091,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/null.result b/mysql-test/main/null.result
index 47fa7ad2750..755108be267 100644
--- a/mysql-test/main/null.result
+++ b/mysql-test/main/null.result
@@ -1660,7 +1660,7 @@ EXPLAIN EXTENDED SELECT NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL AS expr FROM
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00
Warnings:
-Note 1003 select (case when convert(`test`.`t1`.`a` using utf8) = _utf8'a' collate utf8_bin then NULL else `test`.`t1`.`a` end) is null AS `expr` from `test`.`t1`
+Note 1003 select (case when convert(`test`.`t1`.`a` using utf8mb3) = _utf8mb3'a' collate utf8mb3_bin then NULL else `test`.`t1`.`a` end) is null AS `expr` from `test`.`t1`
DROP TABLE t1;
#
# MDEV-8740 Wrong result for SELECT..WHERE year_field=10 AND NULLIF(year_field,2011.1)='2011'
diff --git a/mysql-test/main/null.test b/mysql-test/main/null.test
index bf1a9c3bd1f..3741ec0f8ea 100644
--- a/mysql-test/main/null.test
+++ b/mysql-test/main/null.test
@@ -323,7 +323,9 @@ SELECT NOT NOT NULLIF(2,3);
--echo #
--echo # MDEV-7146 NULLIF returns unexpected result with a YEAR field
--echo #
+--enable_prepare_warnings
CREATE TABLE t1 (a YEAR(2));
+--disable_prepare_warnings
INSERT INTO t1 VALUES (0);
SELECT a,NULLIF(a,2000),NULLIF(2000,a) FROM t1;
SELECT a,NULLIF(a,2001),NULLIF(2001,a) FROM t1;
diff --git a/mysql-test/main/olap.test b/mysql-test/main/olap.test
index 6f4048bf120..59c30da52ca 100644
--- a/mysql-test/main/olap.test
+++ b/mysql-test/main/olap.test
@@ -51,7 +51,10 @@ select product, country_id , year, sum(profit) from t1 group by product, country
select concat(product,':',country_id) as 'prod', concat(":",year,":") as 'year',1+1, sum(profit)/count(*) from t1 group by 1,2 with rollup;
select product, sum(profit)/count(*) from t1 group by product with rollup;
select left(product,4) as prod, sum(profit)/count(*) from t1 group by prod with rollup;
+#check after fix MDEV-29601
+--disable_service_connection
select concat(product,':',country_id), 1+1, sum(profit)/count(*) from t1 group by concat(product,':',country_id) with rollup;
+--enable_service_connection
# Joins
select product, country , year, sum(profit) from t1,t2 where t1.country_id=t2.country_id group by product, country, year with rollup;
diff --git a/mysql-test/main/opt_trace.result b/mysql-test/main/opt_trace.result
index f365041b28a..6a6032e5271 100644
--- a/mysql-test/main/opt_trace.result
+++ b/mysql-test/main/opt_trace.result
@@ -145,8 +145,7 @@ select * from v1 {
}
},
"rows_for_plan": 1,
- "cost_for_plan": 2.404394531,
- "estimated_join_cardinality": 1
+ "cost_for_plan": 2.404394531
}
]
},
@@ -154,8 +153,13 @@ select * from v1 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 1"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -291,8 +295,7 @@ select * from (select * from t1 where t1.a=1)q {
}
},
"rows_for_plan": 1,
- "cost_for_plan": 2.404394531,
- "estimated_join_cardinality": 1
+ "cost_for_plan": 2.404394531
}
]
},
@@ -300,8 +303,13 @@ select * from (select * from t1 where t1.a=1)q {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 1"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -444,8 +452,7 @@ select * from v2 {
},
"rows_for_plan": 1,
"cost_for_plan": 2.404394531,
- "cost_for_sorting": 1,
- "estimated_join_cardinality": 1
+ "cost_for_sorting": 1
}
]
},
@@ -453,8 +460,13 @@ select * from v2 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 1"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -510,8 +522,7 @@ select * from v2 {
}
},
"rows_for_plan": 2,
- "cost_for_plan": 2.4,
- "estimated_join_cardinality": 2
+ "cost_for_plan": 2.4
}
]
},
@@ -520,7 +531,6 @@ select * from v2 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -648,8 +658,7 @@ explain select * from v2 {
}
},
"rows_for_plan": 10,
- "cost_for_plan": 4.021972656,
- "estimated_join_cardinality": 10
+ "cost_for_plan": 4.021972656
}
]
},
@@ -658,7 +667,6 @@ explain select * from v2 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -767,8 +775,7 @@ explain select * from v1 {
},
"rows_for_plan": 10,
"cost_for_plan": 4.021972656,
- "cost_for_sorting": 10,
- "estimated_join_cardinality": 10
+ "cost_for_sorting": 10
}
]
},
@@ -777,7 +784,6 @@ explain select * from v1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -833,8 +839,7 @@ explain select * from v1 {
}
},
"rows_for_plan": 10,
- "cost_for_plan": 12,
- "estimated_join_cardinality": 10
+ "cost_for_plan": 12
}
]
},
@@ -843,7 +848,6 @@ explain select * from v1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -1037,7 +1041,7 @@ explain select * from t1,t2 where t1.a=t2.b+2 and t2.a= t1.b {
},
"rows_for_plan": 100,
"cost_for_plan": 242.3759623,
- "estimated_join_cardinality": 100
+ "pruned_by_hanging_leaf": true
}
]
},
@@ -1104,8 +1108,13 @@ explain select * from t1,t2 where t1.a=t2.b+2 and t2.a= t1.b {
"best_join_order": ["t1", "t2"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t2.a = t1.b and t1.a = t2.b + 2"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t2.a = t1.b and t1.a = t2.b + 2",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -1264,8 +1273,7 @@ EXPLAIN SELECT DISTINCT a FROM t1 {
}
},
"rows_for_plan": 5,
- "cost_for_plan": 7.25,
- "estimated_join_cardinality": 5
+ "cost_for_plan": 7.25
}
]
},
@@ -1274,7 +1282,6 @@ EXPLAIN SELECT DISTINCT a FROM t1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -1457,8 +1464,7 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
},
"rows_for_plan": 8,
"cost_for_plan": 3.8,
- "cost_for_sorting": 8,
- "estimated_join_cardinality": 8
+ "cost_for_sorting": 8
}
]
},
@@ -1466,8 +1472,13 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.b = 2 and t1.c = 3"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.b = 2 and t1.c = 3",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -1651,8 +1662,7 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id {
},
"rows_for_plan": 9,
"cost_for_plan": 4.15,
- "cost_for_sorting": 9,
- "estimated_join_cardinality": 9
+ "cost_for_sorting": 9
}
]
},
@@ -1660,8 +1670,13 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a >= 20010104e0"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a >= 20010104e0",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -1834,8 +1849,7 @@ EXPLAIN SELECT * FROM t1 WHERE a = 20010104e0 GROUP BY id {
},
"rows_for_plan": 9,
"cost_for_plan": 4.15,
- "cost_for_sorting": 9,
- "estimated_join_cardinality": 9
+ "cost_for_sorting": 9
}
]
},
@@ -1843,8 +1857,13 @@ EXPLAIN SELECT * FROM t1 WHERE a = 20010104e0 GROUP BY id {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 20010104e0"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 20010104e0",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -2113,8 +2132,7 @@ explain select * from t1 where a=1 and b=2 order by c limit 1 {
}
},
"rows_for_plan": 21,
- "cost_for_plan": 25.34242739,
- "estimated_join_cardinality": 21
+ "cost_for_plan": 25.34242739
}
]
},
@@ -2122,8 +2140,13 @@ explain select * from t1 where a=1 and b=2 order by c limit 1 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 1 and t1.b = 2"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 1 and t1.b = 2",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -2286,6 +2309,13 @@ select t1.a from t1 left join t2 on t1.a=t2.a {
"select_id": 1,
"steps": [
{
+ "build_equal_items": {
+ "condition": "ON expr",
+ "attached_to": "t2",
+ "resulting_condition": "multiple equal(t1.a, t2.a)"
+ }
+ },
+ {
"table_dependencies": [
{
"table": "t1",
@@ -2353,8 +2383,7 @@ select t1.a from t1 left join t2 on t1.a=t2.a {
}
},
"rows_for_plan": 4,
- "cost_for_plan": 2.806835937,
- "estimated_join_cardinality": 4
+ "cost_for_plan": 2.806835937
}
]
},
@@ -2362,12 +2391,17 @@ select t1.a from t1 left join t2 on t1.a=t2.a {
"best_join_order": ["t2", "t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -2412,6 +2446,13 @@ explain select * from t1 left join t2 on t2.a=t1.a {
"select_id": 1,
"steps": [
{
+ "build_equal_items": {
+ "condition": "ON expr",
+ "attached_to": "t2",
+ "resulting_condition": "multiple equal(t2.a, t1.a)"
+ }
+ },
+ {
"table_dependencies": [
{
"table": "t1",
@@ -2510,7 +2551,7 @@ explain select * from t1 left join t2 on t2.a=t1.a {
},
"rows_for_plan": 4,
"cost_for_plan": 7.606835937,
- "estimated_join_cardinality": 4
+ "pruned_by_hanging_leaf": true
}
]
}
@@ -2520,12 +2561,24 @@ explain select * from t1 left join t2 on t2.a=t1.a {
"best_join_order": ["t1", "t2"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
+ "substitute_best_equal": {
+ "condition": "ON expr",
+ "attached_to": "t2",
+ "resulting_condition": "t2.a = t1.a"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -2573,6 +2626,13 @@ explain select t1.a from t1 left join (t2 join t3 on t2.b=t3.b) on t2.a=t1.a and
"select_id": 1,
"steps": [
{
+ "build_equal_items": {
+ "condition": "ON expr",
+ "attached_to": "t3",
+ "resulting_condition": "multiple equal(t2.a, t1.a, t3.a) and multiple equal(t2.b, t3.b)"
+ }
+ },
+ {
"table_dependencies": [
{
"table": "t1",
@@ -2670,8 +2730,7 @@ explain select t1.a from t1 left join (t2 join t3 on t2.b=t3.b) on t2.a=t1.a and
}
},
"rows_for_plan": 4,
- "cost_for_plan": 2.806835937,
- "estimated_join_cardinality": 4
+ "cost_for_plan": 2.806835937
}
]
},
@@ -2679,12 +2738,17 @@ explain select t1.a from t1 left join (t2 join t3 on t2.b=t3.b) on t2.a=t1.a and
"best_join_order": ["t3", "t2", "t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -2873,8 +2937,7 @@ explain extended select * from t1 where a in (select pk from t10) {
}
},
"rows_for_plan": 10,
- "cost_for_plan": 4.021972656,
- "estimated_join_cardinality": 10
+ "cost_for_plan": 4.021972656
}
]
}
@@ -2946,8 +3009,7 @@ explain extended select * from t1 where a in (select pk from t10) {
{
"chosen_strategy": "SJ-Materialization"
}
- ],
- "estimated_join_cardinality": 3
+ ]
}
]
},
@@ -2993,12 +3055,17 @@ explain extended select * from t1 where a in (select pk from t10) {
"best_join_order": ["t1", "<subquery2>"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -3347,7 +3414,7 @@ explain select * from t1 where pk = 2 and a=5 and b=1 {
},
"rows_for_plan": 1,
"cost_for_plan": 0.326073957,
- "estimated_join_cardinality": 1
+ "pruned_by_hanging_leaf": true
}
]
},
@@ -3355,8 +3422,13 @@ explain select * from t1 where pk = 2 and a=5 and b=1 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.pk = 2 and t1.a = 5 and t1.b = 1"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.pk = 2 and t1.a = 5 and t1.b = 1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -3470,8 +3542,7 @@ select f1(a) from t1 {
}
},
"rows_for_plan": 4,
- "cost_for_plan": 2.806835937,
- "estimated_join_cardinality": 4
+ "cost_for_plan": 2.806835937
}
]
},
@@ -3480,7 +3551,6 @@ select f1(a) from t1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -3568,8 +3638,7 @@ select f2(a) from t1 {
}
},
"rows_for_plan": 4,
- "cost_for_plan": 2.806835937,
- "estimated_join_cardinality": 4
+ "cost_for_plan": 2.806835937
}
]
},
@@ -3578,7 +3647,6 @@ select f2(a) from t1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -3616,7 +3684,7 @@ a
2
select length(trace) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
length(trace)
-2183
+2092
set optimizer_trace_max_mem_size=100;
select * from t1;
a
@@ -3630,7 +3698,7 @@ select * from t1 {
"join_preparation": {
"select_id": 1,
"steps": [
- 2083 0
+ 1992 0
set optimizer_trace_max_mem_size=0;
select * from t1;
a
@@ -3638,7 +3706,7 @@ a
2
select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
-select * from t1 2183 0
+select * from t1 2092 0
drop table t1;
set optimizer_trace='enabled=off';
set @@optimizer_trace_max_mem_size= @save_optimizer_trace_max_mem_size;
@@ -3982,7 +4050,7 @@ explain delete t0,t1 from t0, t1 where t0.a=t1.a and t1.a<3 {
},
"rows_for_plan": 3,
"cost_for_plan": 4.948514767,
- "estimated_join_cardinality": 3
+ "pruned_by_hanging_leaf": true
}
]
},
@@ -4016,6 +4084,7 @@ explain delete t0,t1 from t0, t1 where t0.a=t1.a and t1.a<3 {
{
"access_type": "ref",
"index": "a",
+ "rec_per_key_stats_missing": true,
"used_range_estimates": false,
"cause": "not better than ref estimates",
"rowid_filter_skipped": "worst/max seeks clipping",
@@ -4048,8 +4117,13 @@ explain delete t0,t1 from t0, t1 where t0.a=t1.a and t1.a<3 {
"best_join_order": ["t0", "t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = t0.a and t0.a < 3"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = t0.a and t0.a < 3",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -4176,8 +4250,7 @@ explain select * from (select rand() from t1)q {
}
},
"rows_for_plan": 3,
- "cost_for_plan": 2.605126953,
- "estimated_join_cardinality": 3
+ "cost_for_plan": 2.605126953
}
]
},
@@ -4186,7 +4259,6 @@ explain select * from (select rand() from t1)q {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -4242,8 +4314,7 @@ explain select * from (select rand() from t1)q {
}
},
"rows_for_plan": 3,
- "cost_for_plan": 3.6,
- "estimated_join_cardinality": 3
+ "cost_for_plan": 3.6
}
]
},
@@ -4252,7 +4323,6 @@ explain select * from (select rand() from t1)q {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -4472,8 +4542,7 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_
}
},
"rows_for_plan": 9,
- "cost_for_plan": 6.410253906,
- "estimated_join_cardinality": 9
+ "cost_for_plan": 6.410253906
}
]
},
@@ -4593,8 +4662,7 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_
{
"chosen_strategy": "SJ-Materialization"
}
- ],
- "estimated_join_cardinality": 3
+ ]
}
]
},
@@ -4693,12 +4761,17 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_
"best_join_order": ["t1", "<subquery2>"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -5132,8 +5205,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
{
"chosen_strategy": "DuplicateWeedout"
}
- ],
- "estimated_join_cardinality": 27
+ ]
}
]
},
@@ -5255,8 +5327,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
{
"chosen_strategy": "DuplicateWeedout"
}
- ],
- "estimated_join_cardinality": 27
+ ]
}
]
},
@@ -5590,25 +5661,25 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_2",
"t_inner_3"
],
- "table": "t_inner_4",
+ "table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
- "resulting_rows": 3,
- "cost": 2.005126953,
+ "resulting_rows": 9,
+ "cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
- "records": 3,
- "cost": 2.005126953,
+ "records": 9,
+ "cost": 2.015380859,
"uses_join_buffering": true
}
},
- "rows_for_plan": 2187,
- "cost_for_plan": 611.8461426,
+ "rows_for_plan": 6561,
+ "cost_for_plan": 1486.656396,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
},
@@ -5619,25 +5690,25 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_2",
"t_inner_3"
],
- "table": "t_inner_2",
+ "table": "t_inner_4",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
- "resulting_rows": 9,
- "cost": 2.015380859,
+ "resulting_rows": 3,
+ "cost": 2.005126953,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
- "records": 9,
- "cost": 2.015380859,
+ "records": 3,
+ "cost": 2.005126953,
"uses_join_buffering": true
}
},
- "rows_for_plan": 6561,
- "cost_for_plan": 1486.656396,
+ "rows_for_plan": 2187,
+ "cost_for_plan": 611.8461426,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
}
@@ -5670,7 +5741,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"rest_of_plan": [
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"],
- "table": "t_outer_2",
+ "table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5696,9 +5767,9 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1",
"t_inner_1",
"t_inner_4",
- "t_outer_2"
+ "t_inner_2"
],
- "table": "t_inner_2",
+ "table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5725,7 +5796,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1",
"t_inner_1",
"t_inner_4",
- "t_outer_2"
+ "t_inner_2"
],
"table": "t_inner_3",
"best_access_path": {
@@ -5753,7 +5824,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
},
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"],
- "table": "t_inner_2",
+ "table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5826,7 +5897,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"rest_of_plan": [
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
- "table": "t_outer_2",
+ "table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5852,27 +5923,27 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1",
"t_inner_1",
"t_inner_3",
- "t_outer_2"
+ "t_inner_2"
],
- "table": "t_inner_4",
+ "table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
- "resulting_rows": 3,
- "cost": 2.005126953,
+ "resulting_rows": 9,
+ "cost": 2.015380859,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
- "records": 3,
- "cost": 2.005126953,
+ "records": 9,
+ "cost": 2.015380859,
"uses_join_buffering": true
}
},
- "rows_for_plan": 2187,
- "cost_for_plan": 611.8461426,
+ "rows_for_plan": 6561,
+ "cost_for_plan": 1486.656396,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
},
@@ -5881,27 +5952,27 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_outer_1",
"t_inner_1",
"t_inner_3",
- "t_outer_2"
+ "t_inner_2"
],
- "table": "t_inner_2",
+ "table": "t_inner_4",
"best_access_path": {
"considered_access_paths": [
{
"access_type": "scan",
- "resulting_rows": 9,
- "cost": 2.015380859,
+ "resulting_rows": 3,
+ "cost": 2.005126953,
"chosen": true
}
],
"chosen_access_method": {
"type": "scan",
- "records": 9,
- "cost": 2.015380859,
+ "records": 3,
+ "cost": 2.005126953,
"uses_join_buffering": true
}
},
- "rows_for_plan": 6561,
- "cost_for_plan": 1486.656396,
+ "rows_for_plan": 2187,
+ "cost_for_plan": 611.8461426,
"semijoin_strategy_choice": [],
"pruned_by_cost": true
}
@@ -5909,6 +5980,30 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
},
{
"plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
+ "table": "t_outer_2",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "resulting_rows": 9,
+ "cost": 2.015380859,
+ "chosen": true
+ }
+ ],
+ "chosen_access_method": {
+ "type": "scan",
+ "records": 9,
+ "cost": 2.015380859,
+ "uses_join_buffering": true
+ }
+ },
+ "rows_for_plan": 729,
+ "cost_for_plan": 172.4410156,
+ "semijoin_strategy_choice": [],
+ "pruned_by_heuristic": true
+ },
+ {
+ "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
"table": "t_inner_4",
"best_access_path": {
"considered_access_paths": [
@@ -5937,7 +6032,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_inner_3",
"t_inner_4"
],
- "table": "t_outer_2",
+ "table": "t_inner_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5966,7 +6061,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"t_inner_3",
"t_inner_4"
],
- "table": "t_inner_2",
+ "table": "t_outer_2",
"best_access_path": {
"considered_access_paths": [
{
@@ -5989,30 +6084,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
"pruned_by_cost": true
}
]
- },
- {
- "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"],
- "table": "t_inner_2",
- "best_access_path": {
- "considered_access_paths": [
- {
- "access_type": "scan",
- "resulting_rows": 9,
- "cost": 2.015380859,
- "chosen": true
- }
- ],
- "chosen_access_method": {
- "type": "scan",
- "records": 9,
- "cost": 2.015380859,
- "uses_join_buffering": true
- }
- },
- "rows_for_plan": 729,
- "cost_for_plan": 172.4410156,
- "semijoin_strategy_choice": [],
- "pruned_by_heuristic": true
}
]
}
@@ -6259,8 +6330,13 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t_inner_1.a = t_outer_1.a and t_inner_3.a = t_outer_2.a"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t_inner_1.a = t_outer_1.a and t_inner_3.a = t_outer_2.a",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -6568,8 +6644,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
}
},
"rows_for_plan": 27,
- "cost_for_plan": 10.02050781,
- "estimated_join_cardinality": 27
+ "cost_for_plan": 10.02050781
}
]
},
@@ -6642,8 +6717,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
}
},
"rows_for_plan": 27,
- "cost_for_plan": 10.02050781,
- "estimated_join_cardinality": 27
+ "cost_for_plan": 10.02050781
}
]
},
@@ -6862,8 +6936,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
{
"chosen_strategy": "SJ-Materialization"
}
- ],
- "estimated_join_cardinality": 27
+ ]
}
]
},
@@ -7336,12 +7409,17 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) {
]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "1"
+ }
+ },
+ {
"condition_on_constant_tables": "1",
"computing_condition": []
},
{
"attaching_conditions_to_tables": {
- "original_condition": "1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -7947,8 +8025,7 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans'))
}
},
"rows_for_plan": 4777.832031,
- "cost_for_plan": 1216.438354,
- "estimated_join_cardinality": 4777.832031
+ "cost_for_plan": 1216.438354
}
]
},
@@ -8257,7 +8334,7 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans'))
"rows_for_plan": 10,
"cost_for_plan": 26.0278306,
"cost_for_sorting": 10,
- "estimated_join_cardinality": 10
+ "pruned_by_hanging_leaf": true
}
]
},
@@ -8553,8 +8630,7 @@ select count(*) from seq_1_to_10000000 {
}
},
"rows_for_plan": 10000000,
- "cost_for_plan": 12000000,
- "estimated_join_cardinality": 10000000
+ "cost_for_plan": 12000000
}
]
},
@@ -8563,7 +8639,6 @@ select count(*) from seq_1_to_10000000 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -8704,5 +8779,317 @@ json_detailed(json_extract(trace, '$**.in_to_subquery_conversion'))
]
set in_predicate_conversion_threshold=@tmp;
drop table t0;
+#
# End of 10.5 tests
+#
+#
+# MDEV-23677: Optimizer trace ... (test coverage)
+#
+create table t1(a int, b int, c int, primary key (a,b,c));
+insert into t1 values (0,0,0),(1,1,1),(2,2,2),(3,3,3),(4,4,4);
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,2);
+create table t3 (a int, b int, c int);
+insert into t3 values (0,0,0),(1,1,1),(2,2,2),(3,3,3),(4,4,4);
+explain select * from t2,t1,t3 where t2.b= t1.b and t1.a=t3.a;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t3 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
+1 SIMPLE t1 ref PRIMARY PRIMARY 8 test.t3.a,test.t2.b 1 Using index
+set @trace=(select trace from information_schema.optimizer_trace);
+set @path= (select json_search(@trace, 'one', 'no predicate for first keypart'));
+set @sub_path= substr(@path, 2, locate('.best_access_path', @path)-2);
+select @sub_path;
+@sub_path
+$.steps[1].join_optimization.steps[4].considered_execution_plans[0].rest_of_plan[0]
+select
+json_detailed(json_extract(
+@trace,
+concat(@sub_path,'.best_access_path.considered_access_paths[0]')
+)) as S;
+S
+{
+ "access_type": "ref",
+ "index": "PRIMARY",
+ "rows": 1.79769e308,
+ "cost": 1.79769e308,
+ "chosen": false,
+ "cause": "no predicate for first keypart"
+}
+drop table t1,t2,t3;
+#
+# MDEV-23645: Optimizer trace: print conditions after substitute_for_best_equal_field
+#
+create table t1 (a int, b int, c int);
+insert into t1 values (1,1,1),(2,2,2);
+create table t2 as select * from t1;
+insert into t2 select * from t2;
+create table t3 as select * from t2;
+insert into t3 select * from t3;
+# Check how HAVING is printed
+explain
+select
+a,b, count(*)
+from t1
+where a=3
+group by b,b
+having a+b < 10;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using temporary; Using filesort
+select
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+[
+ {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 3"
+ },
+ {
+ "condition": "HAVING",
+ "resulting_condition": "t1.a + t1.b < 10"
+ }
+]
+# Check ON expression
+explain
+select
+*
+from t1 left join t2 on t2.a=t1.a and t2.a<3
+where
+t1.b > 5555;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
+select
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+[
+ {
+ "condition": "WHERE",
+ "resulting_condition": "t1.b > 5555"
+ },
+ {
+ "condition": "ON expr",
+ "attached_to": "t2",
+ "resulting_condition": "t2.a = t1.a and t1.a < 3"
+ }
+]
+# Check nested ON expression
+explain
+select
+*
+from t1 left join (t2,t3) on t2.a=t1.a and t3.a=t2.a and t3.a + t2.a <1000
+where
+t1.b > 5555;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
+1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
+1 SIMPLE t3 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (incremental, BNL join)
+select
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+[
+ {
+ "condition": "WHERE",
+ "resulting_condition": "t1.b > 5555"
+ },
+ {
+ "condition": "ON expr",
+ "attached_to": "t2",
+ "resulting_condition": "t2.a = t1.a and t3.a = t1.a and t1.a + t1.a < 1000"
+ }
+]
+# The next query is test for:
+# MDEV-23646: Optimizer trace: optimize_cond() should show ON expression processing
+select
+json_detailed(json_extract(trace, '$**.condition_processing'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.condition_processing'))
+[
+ {
+ "condition": "WHERE",
+ "original_condition": "t1.b > 5555",
+ "steps":
+ [
+ {
+ "build_equal_items":
+ {
+ "condition": "ON expr",
+ "attached_to": "t3",
+ "resulting_condition": "t3.a + t2.a < 1000 and multiple equal(t2.a, t1.a, t3.a)"
+ }
+ },
+ {
+ "transformation": "equality_propagation",
+ "resulting_condition": "t1.b > 5555"
+ },
+ {
+ "transformation": "constant_propagation",
+ "resulting_condition": "t1.b > 5555"
+ },
+ {
+ "transformation": "trivial_condition_removal",
+ "resulting_condition": "t1.b > 5555"
+ }
+ ]
+ }
+]
+drop table t1,t2,t3;
+#
+# MDEV-24325: Optimizer trace doesn't cover LATERAL DERIVED
+#
+create table t1 (a int, b int, index idx_b(b)) engine=myisam;
+insert into t1 values
+(8,3), (5,7), (1,2), (2,1), (9,7), (7,5), (2,2), (7,3),
+(9,3), (8,1), (4,5), (2,3);
+create table t2 (a int, b int, c char(127), index idx_a(a)) engine=myisam;
+insert into t2 values
+(7,10,'x'), (1,20,'a'), (2,23,'b'), (7,18,'z'), (1,30,'c'),
+(4,71,'d'), (3,15,'x'), (7,82,'y'), (8,12,'t'), (4,15,'b'),
+(11,33,'a'), (10,42,'u'), (4,53,'p'), (10,17,'r'), (2,90,'x'),
+(17,10,'s'), (11,20,'v'), (12,23,'y'), (17,18,'a'), (11,30,'d'),
+(24,71,'h'), (23,15,'i'), (27,82,'k'), (28,12,'p'), (24,15,'q'),
+(31,33,'f'), (30,42,'h'), (40,53,'m'), (30,17,'o'), (21,90,'b'),
+(37,10,'e'), (31,20,'g'), (32,23,'f'), (37,18,'n'), (41,30,'l'),
+(54,71,'j'), (53,15,'w'), (57,82,'z'), (58,12,'k'), (54,15,'p'),
+(61,33,'c'), (60,42,'a'), (62,53,'x'), (67,17,'g'), (64,90,'v');
+insert into t2 select a+10, b+10, concat(c,'f') from t2;
+analyze table t1,t2;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+test.t2 analyze status Engine-independent statistics collected
+test.t2 analyze status OK
+explain
+select t1.a,t.s,t.m
+from t1 join
+(select a, sum(t2.b) as s, min(t2.c) as m from t2 group by t2.a) t
+on t1.a=t.a
+where t1.b < 3;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 range idx_b idx_b 5 NULL 4 Using index condition; Using where
+1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 2
+2 LATERAL DERIVED t2 ref idx_a idx_a 5 test.t1.a 1
+select
+json_detailed(json_extract(trace, '$**.choose_best_splitting'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.choose_best_splitting'))
+[
+ [
+ {
+ "considered_execution_plans":
+ [
+ {
+ "plan_prefix":
+ [],
+ "table": "t2",
+ "best_access_path":
+ {
+ "considered_access_paths":
+ [
+ {
+ "access_type": "ref",
+ "index": "idx_a",
+ "used_range_estimates": false,
+ "cause": "not available",
+ "rows": 1.8367,
+ "cost": 2.000585794,
+ "chosen": true
+ },
+ {
+ "type": "scan",
+ "chosen": false,
+ "cause": "cost"
+ }
+ ],
+ "chosen_access_method":
+ {
+ "type": "ref",
+ "records": 1.8367,
+ "cost": 2.000585794,
+ "uses_join_buffering": false
+ }
+ },
+ "rows_for_plan": 1.8367,
+ "cost_for_plan": 2.367925794,
+ "cost_for_sorting": 1.8367
+ }
+ ]
+ },
+ {
+ "best_splitting":
+ {
+ "table": "t2",
+ "key": "idx_a",
+ "record_count": 4,
+ "cost": 2.488945919,
+ "unsplit_cost": 25.72361682
+ }
+ }
+ ]
+]
+select
+json_detailed(json_extract(trace, '$**.lateral_derived'))
+from
+information_schema.optimizer_trace;
+json_detailed(json_extract(trace, '$**.lateral_derived'))
+[
+ {
+ "startup_cost": 9.955783677,
+ "splitting_cost": 2.488945919,
+ "records": 1
+ }
+]
+drop table t1,t2;
+#
+# Test table functions.
+#
+CREATE TABLE t1(id INT, f1 JSON);
+INSERT INTO t1 VALUES (1, '{\"1\": 1}'), (2, '{\"1\": 2}'), (3, '{\"1\": 3}'),
+(4, '{\"1\": 4}'), (5, '{\"1\": 5}'), (6, '{\"1\": 6}');
+SELECT * FROM t1 WHERE id IN
+(SELECT id FROM t1 as tt2,
+JSON_TABLE(f1, "$" COLUMNS (jf FOR ORDINALITY)) AS tbl);
+id f1
+1 {"1": 1}
+2 {"1": 2}
+3 {"1": 3}
+4 {"1": 4}
+5 {"1": 5}
+6 {"1": 6}
+select json_detailed(json_extract(trace, '$**.best_join_order'))
+from information_schema.OPTIMIZER_TRACE;
+json_detailed(json_extract(trace, '$**.best_join_order'))
+[
+ [
+ "t1",
+ "<subquery2>"
+ ]
+]
+DROP TABLE t1;
+#
+# MDEV-27306: SET STATEMENT optimizer_trace=1 Doesn't save the trace
+#
+set optimizer_trace=0;
+set statement optimizer_trace=1 for select * from seq_1_to_10 where seq<2;
+seq
+1
+# The trace must not be empty:
+select left(trace, 100) from information_schema.optimizer_trace;
+left(trace, 100)
+{
+ "steps": [
+ {
+ "join_preparation": {
+ "select_id": 1,
+ "steps": [
+
+# End of 10.6 tests
set optimizer_trace='enabled=off';
diff --git a/mysql-test/main/opt_trace.test b/mysql-test/main/opt_trace.test
index e8ddd2ed8aa..e98964c2830 100644
--- a/mysql-test/main/opt_trace.test
+++ b/mysql-test/main/opt_trace.test
@@ -48,6 +48,8 @@ ANALYZE TABLE t2;
create view v1 as select a from t1 group by b;
create view v2 as select a from t2;
+# MDEV-27421 ./mtr --ps-protocol main.opt_trace fails to produce some traces
+--disable_ps_protocol
--echo # Mergeable view
--optimizer_trace
explain select * from v2 ;
@@ -55,6 +57,7 @@ explain select * from v2 ;
--echo # Non-Mergeable view
--optimizer_trace
explain select * from v1 ;
+--enable_ps_protocol
drop table t1,t2;
drop view v1,v2;
@@ -264,12 +267,14 @@ begin
return a;
end|
+--enable_prepare_warnings
create function f2(a int) returns int
begin
declare a int default 0;
select count(*) from t2 into a;
return a;
end|
+--disable_prepare_warnings
delimiter ;|
--disable_view_protocol
@@ -748,5 +753,177 @@ set in_predicate_conversion_threshold=@tmp;
drop table t0;
--enable_view_protocol
+--echo #
--echo # End of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-23677: Optimizer trace ... (test coverage)
+--echo #
+create table t1(a int, b int, c int, primary key (a,b,c));
+insert into t1 values (0,0,0),(1,1,1),(2,2,2),(3,3,3),(4,4,4);
+
+create table t2 (a int, b int);
+insert into t2 values (1,1),(2,2);
+
+create table t3 (a int, b int, c int);
+insert into t3 values (0,0,0),(1,1,1),(2,2,2),(3,3,3),(4,4,4);
+
+explain select * from t2,t1,t3 where t2.b= t1.b and t1.a=t3.a;
+
+set @trace=(select trace from information_schema.optimizer_trace);
+set @path= (select json_search(@trace, 'one', 'no predicate for first keypart'));
+set @sub_path= substr(@path, 2, locate('.best_access_path', @path)-2);
+
+select @sub_path;
+select
+ json_detailed(json_extract(
+ @trace,
+ concat(@sub_path,'.best_access_path.considered_access_paths[0]')
+ )) as S;
+
+drop table t1,t2,t3;
+
+--echo #
+--echo # MDEV-23645: Optimizer trace: print conditions after substitute_for_best_equal_field
+--echo #
+create table t1 (a int, b int, c int);
+insert into t1 values (1,1,1),(2,2,2);
+
+create table t2 as select * from t1;
+insert into t2 select * from t2;
+
+create table t3 as select * from t2;
+insert into t3 select * from t3;
+
+--echo # Check how HAVING is printed
+explain
+select
+ a,b, count(*)
+from t1
+where a=3
+group by b,b
+having a+b < 10;
+
+select
+ json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+ information_schema.optimizer_trace;
+
+--echo # Check ON expression
+explain
+select
+ *
+from t1 left join t2 on t2.a=t1.a and t2.a<3
+where
+ t1.b > 5555;
+
+select
+ json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+ information_schema.optimizer_trace;
+
+--echo # Check nested ON expression
+explain
+select
+ *
+from t1 left join (t2,t3) on t2.a=t1.a and t3.a=t2.a and t3.a + t2.a <1000
+where
+ t1.b > 5555;
+
+--disable_view_protocol
+select
+ json_detailed(json_extract(trace, '$**.substitute_best_equal'))
+from
+ information_schema.optimizer_trace;
+--enable_view_protocol
+
+--echo # The next query is test for:
+--echo # MDEV-23646: Optimizer trace: optimize_cond() should show ON expression processing
+select
+ json_detailed(json_extract(trace, '$**.condition_processing'))
+from
+ information_schema.optimizer_trace;
+
+drop table t1,t2,t3;
+
+
+--echo #
+--echo # MDEV-24325: Optimizer trace doesn't cover LATERAL DERIVED
+--echo #
+create table t1 (a int, b int, index idx_b(b)) engine=myisam;
+insert into t1 values
+(8,3), (5,7), (1,2), (2,1), (9,7), (7,5), (2,2), (7,3),
+(9,3), (8,1), (4,5), (2,3);
+
+create table t2 (a int, b int, c char(127), index idx_a(a)) engine=myisam;
+insert into t2 values
+ (7,10,'x'), (1,20,'a'), (2,23,'b'), (7,18,'z'), (1,30,'c'),
+ (4,71,'d'), (3,15,'x'), (7,82,'y'), (8,12,'t'), (4,15,'b'),
+ (11,33,'a'), (10,42,'u'), (4,53,'p'), (10,17,'r'), (2,90,'x'),
+ (17,10,'s'), (11,20,'v'), (12,23,'y'), (17,18,'a'), (11,30,'d'),
+ (24,71,'h'), (23,15,'i'), (27,82,'k'), (28,12,'p'), (24,15,'q'),
+ (31,33,'f'), (30,42,'h'), (40,53,'m'), (30,17,'o'), (21,90,'b'),
+ (37,10,'e'), (31,20,'g'), (32,23,'f'), (37,18,'n'), (41,30,'l'),
+ (54,71,'j'), (53,15,'w'), (57,82,'z'), (58,12,'k'), (54,15,'p'),
+ (61,33,'c'), (60,42,'a'), (62,53,'x'), (67,17,'g'), (64,90,'v');
+
+insert into t2 select a+10, b+10, concat(c,'f') from t2;
+
+analyze table t1,t2;
+
+explain
+select t1.a,t.s,t.m
+from t1 join
+ (select a, sum(t2.b) as s, min(t2.c) as m from t2 group by t2.a) t
+ on t1.a=t.a
+where t1.b < 3;
+
+#
+# Just show that choose_best_splitting function has coverage in the
+# optimizer trace and re-optmization of child select inside it is distinct
+# from the rest of join optimization.
+--disable_view_protocol
+select
+ json_detailed(json_extract(trace, '$**.choose_best_splitting'))
+from
+ information_schema.optimizer_trace;
+--enable_view_protocol
+
+# Same as above. just to show that splitting plan has some coverage in the
+# trace.
+select
+ json_detailed(json_extract(trace, '$**.lateral_derived'))
+from
+ information_schema.optimizer_trace;
+
+drop table t1,t2;
+
+--echo #
+--echo # Test table functions.
+--echo #
+
+CREATE TABLE t1(id INT, f1 JSON);
+INSERT INTO t1 VALUES (1, '{\"1\": 1}'), (2, '{\"1\": 2}'), (3, '{\"1\": 3}'),
+ (4, '{\"1\": 4}'), (5, '{\"1\": 5}'), (6, '{\"1\": 6}');
+
+--disable_view_protocol
+SELECT * FROM t1 WHERE id IN
+ (SELECT id FROM t1 as tt2,
+ JSON_TABLE(f1, "$" COLUMNS (jf FOR ORDINALITY)) AS tbl);
+--enable_view_protocol
+
+select json_detailed(json_extract(trace, '$**.best_join_order'))
+ from information_schema.OPTIMIZER_TRACE;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-27306: SET STATEMENT optimizer_trace=1 Doesn't save the trace
+--echo #
+set optimizer_trace=0;
+set statement optimizer_trace=1 for select * from seq_1_to_10 where seq<2;
+--echo # The trace must not be empty:
+select left(trace, 100) from information_schema.optimizer_trace;
+
+--echo # End of 10.6 tests
set optimizer_trace='enabled=off';
diff --git a/mysql-test/main/opt_trace_index_merge.result b/mysql-test/main/opt_trace_index_merge.result
index 2b5d4cbaae5..1ef7565690e 100644
--- a/mysql-test/main/opt_trace_index_merge.result
+++ b/mysql-test/main/opt_trace_index_merge.result
@@ -221,8 +221,7 @@ explain select * from t1 where a=1 or b=1 {
}
},
"rows_for_plan": 2,
- "cost_for_plan": 2.884903732,
- "estimated_join_cardinality": 2
+ "cost_for_plan": 2.884903732
}
]
},
@@ -230,8 +229,13 @@ explain select * from t1 where a=1 or b=1 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.a = 1 or t1.b = 1"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.a = 1 or t1.b = 1",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
diff --git a/mysql-test/main/opt_trace_index_merge_innodb.result b/mysql-test/main/opt_trace_index_merge_innodb.result
index 1a891e3830d..b9c59c7a100 100644
--- a/mysql-test/main/opt_trace_index_merge_innodb.result
+++ b/mysql-test/main/opt_trace_index_merge_innodb.result
@@ -227,7 +227,7 @@ explain select * from t1 where pk1 != 0 and key1 = 1 {
},
"rows_for_plan": 1,
"cost_for_plan": 1.325146475,
- "estimated_join_cardinality": 1
+ "pruned_by_hanging_leaf": true
}
]
},
@@ -235,8 +235,13 @@ explain select * from t1 where pk1 != 0 and key1 = 1 {
"best_join_order": ["t1"]
},
{
+ "substitute_best_equal": {
+ "condition": "WHERE",
+ "resulting_condition": "t1.key1 = 1 and t1.pk1 <> 0"
+ }
+ },
+ {
"attaching_conditions_to_tables": {
- "original_condition": "t1.key1 = 1 and t1.pk1 <> 0",
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
diff --git a/mysql-test/main/opt_trace_security.result b/mysql-test/main/opt_trace_security.result
index 55b7bf92089..7debcb06b46 100644
--- a/mysql-test/main/opt_trace_security.result
+++ b/mysql-test/main/opt_trace_security.result
@@ -107,8 +107,7 @@ select * from db1.t1 {
}
},
"rows_for_plan": 3,
- "cost_for_plan": 2.605126953,
- "estimated_join_cardinality": 3
+ "cost_for_plan": 2.605126953
}
]
},
@@ -117,7 +116,6 @@ select * from db1.t1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
@@ -230,8 +228,7 @@ select * from db1.v1 {
}
},
"rows_for_plan": 3,
- "cost_for_plan": 2.605126953,
- "estimated_join_cardinality": 3
+ "cost_for_plan": 2.605126953
}
]
},
@@ -240,7 +237,6 @@ select * from db1.v1 {
},
{
"attaching_conditions_to_tables": {
- "original_condition": null,
"attached_conditions_computation": [],
"attached_conditions_summary": [
{
diff --git a/mysql-test/main/order_by.result b/mysql-test/main/order_by.result
index 9dcd8b9e5b1..5f56201af9c 100644
--- a/mysql-test/main/order_by.result
+++ b/mysql-test/main/order_by.result
@@ -3495,7 +3495,7 @@ WHERE books.library_id = 8663 AND
books.scheduled_for_removal=0 )
ORDER BY wings.id;
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 2 100.00 Using temporary; Using filesort
+1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 2 100.00 Using filesort
1 PRIMARY wings eq_ref PRIMARY PRIMARY 4 test.books.wings_id 1 100.00
2 MATERIALIZED books ref library_idx library_idx 4 const 2 100.00 Using where
Warnings:
@@ -4341,3 +4341,140 @@ SELECT (SELECT sum(t2.b) FROM t2 WHERE t1.b=t2.b GROUP BY t2.a) FROM t1;
set sort_buffer_size= @save_sort_buffer_size;
DROP TABLE t1,t2;
# End of 10.5 tests
+#
+# MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on
+#
+CREATE TABLE t1 (a INT, b int, primary key(a));
+CREATE TABLE t2 (a INT, b INT);
+INSERT INTO t1 (a,b) VALUES (58,1),(96,2),(273,3),(23,4),(231,5),(525,6),
+(2354,7),(321421,3),(535,2),(4535,3);
+INSERT INTO t2 (a,b) VALUES (58,3),(96,3),(273,3);
+# Join order should have the SJM scan table as the first table for both
+# the queries with GROUP BY and ORDER BY clause.
+EXPLAIN SELECT t1.a
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+ORDER BY t1.a DESC;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 Using filesort
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using index
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where
+EXPLAIN FORMAT=JSON SELECT t1.a
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+ORDER BY t1.a DESC;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "read_sorted_file": {
+ "filesort": {
+ "sort_key": "t1.a desc",
+ "table": {
+ "table_name": "<subquery2>",
+ "access_type": "ALL",
+ "possible_keys": ["distinct_key"],
+ "rows": 3,
+ "filtered": 100,
+ "materialized": {
+ "unique": 1,
+ "query_block": {
+ "select_id": 2,
+ "table": {
+ "table_name": "t2",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100,
+ "attached_condition": "t2.b = 3 and t2.a is not null"
+ }
+ }
+ }
+ }
+ }
+ },
+ "table": {
+ "table_name": "t1",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["a"],
+ "ref": ["test.t2.a"],
+ "rows": 1,
+ "filtered": 100,
+ "using_index": true
+ }
+ }
+}
+SELECT t1.a
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+ORDER BY t1.a DESC;
+a
+273
+96
+58
+EXPLAIN SELECT t1.a, group_concat(t1.b)
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+GROUP BY t1.a DESC;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 Using filesort
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
+2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where
+EXPLAIN FORMAT=JSON SELECT t1.a, group_concat(t1.b)
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+GROUP BY t1.a DESC;
+EXPLAIN
+{
+ "query_block": {
+ "select_id": 1,
+ "read_sorted_file": {
+ "filesort": {
+ "sort_key": "t1.a desc",
+ "table": {
+ "table_name": "<subquery2>",
+ "access_type": "ALL",
+ "possible_keys": ["distinct_key"],
+ "rows": 3,
+ "filtered": 100,
+ "materialized": {
+ "unique": 1,
+ "query_block": {
+ "select_id": 2,
+ "table": {
+ "table_name": "t2",
+ "access_type": "ALL",
+ "rows": 3,
+ "filtered": 100,
+ "attached_condition": "t2.b = 3 and t2.a is not null"
+ }
+ }
+ }
+ }
+ }
+ },
+ "table": {
+ "table_name": "t1",
+ "access_type": "eq_ref",
+ "possible_keys": ["PRIMARY"],
+ "key": "PRIMARY",
+ "key_length": "4",
+ "used_key_parts": ["a"],
+ "ref": ["test.t2.a"],
+ "rows": 1,
+ "filtered": 100
+ }
+ }
+}
+SELECT t1.a, group_concat(t1.b)
+FROM t1
+WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+GROUP BY t1.a DESC;
+a group_concat(t1.b)
+273 3
+96 2
+58 1
+DROP TABLE t1, t2;
+# End of 10.6 tests
diff --git a/mysql-test/main/order_by.test b/mysql-test/main/order_by.test
index eaf6014fa7f..fee2880bac9 100644
--- a/mysql-test/main/order_by.test
+++ b/mysql-test/main/order_by.test
@@ -2668,3 +2668,38 @@ SELECT (SELECT sum(t2.b) FROM t2 WHERE t1.b=t2.b GROUP BY t2.a) FROM t1;
set sort_buffer_size= @save_sort_buffer_size;
DROP TABLE t1,t2;
--echo # End of 10.5 tests
+
+--echo #
+--echo # MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on
+--echo #
+
+CREATE TABLE t1 (a INT, b int, primary key(a));
+CREATE TABLE t2 (a INT, b INT);
+
+INSERT INTO t1 (a,b) VALUES (58,1),(96,2),(273,3),(23,4),(231,5),(525,6),
+ (2354,7),(321421,3),(535,2),(4535,3);
+INSERT INTO t2 (a,b) VALUES (58,3),(96,3),(273,3);
+
+--echo # Join order should have the SJM scan table as the first table for both
+--echo # the queries with GROUP BY and ORDER BY clause.
+
+let $query= SELECT t1.a
+ FROM t1
+ WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+ ORDER BY t1.a DESC;
+
+eval EXPLAIN $query;
+eval EXPLAIN FORMAT=JSON $query;
+eval $query;
+
+let $query= SELECT t1.a, group_concat(t1.b)
+ FROM t1
+ WHERE t1.a IN (SELECT a FROM t2 WHERE b=3)
+ GROUP BY t1.a DESC;
+
+eval EXPLAIN $query;
+eval EXPLAIN FORMAT=JSON $query;
+eval $query;
+DROP TABLE t1, t2;
+
+--echo # End of 10.6 tests
diff --git a/mysql-test/main/order_by_innodb.result b/mysql-test/main/order_by_innodb.result
index 17d39eb12e6..1d96a62e423 100644
--- a/mysql-test/main/order_by_innodb.result
+++ b/mysql-test/main/order_by_innodb.result
@@ -154,7 +154,7 @@ id2 int NOT NULL,
d1 datetime,
d2 timestamp NOT NULL,
KEY id2 (id2)
-) engine=innodb;
+) engine=innodb stats_persistent=0;
insert into t2 values
(1,2,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
(2,3,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
diff --git a/mysql-test/main/order_by_innodb.test b/mysql-test/main/order_by_innodb.test
index 29b796f67bc..fbff825e26e 100644
--- a/mysql-test/main/order_by_innodb.test
+++ b/mysql-test/main/order_by_innodb.test
@@ -141,7 +141,7 @@ CREATE TABLE t2 (
d1 datetime,
d2 timestamp NOT NULL,
KEY id2 (id2)
-) engine=innodb;
+) engine=innodb stats_persistent=0;
insert into t2 values
(1,2,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
diff --git a/mysql-test/main/order_by_optimizer_innodb.result b/mysql-test/main/order_by_optimizer_innodb.result
index 0b62ba997d8..cbb5551b7cf 100644
--- a/mysql-test/main/order_by_optimizer_innodb.result
+++ b/mysql-test/main/order_by_optimizer_innodb.result
@@ -1,4 +1,5 @@
-drop table if exists t0,t1,t2,t3;
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=OFF;
#
# MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used
#
@@ -96,3 +97,4 @@ ORDER BY pk2 DESC LIMIT 21;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ref key1 key1 55 const,const 1 Using where; Using index
drop table t1, t2;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/order_by_optimizer_innodb.test b/mysql-test/main/order_by_optimizer_innodb.test
index 90430d11549..33f67e522ad 100644
--- a/mysql-test/main/order_by_optimizer_innodb.test
+++ b/mysql-test/main/order_by_optimizer_innodb.test
@@ -1,8 +1,7 @@
--source include/have_innodb.inc
---disable_warnings
-drop table if exists t0,t1,t2,t3;
---enable_warnings
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=OFF;
--echo #
--echo # MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used
@@ -96,3 +95,4 @@ ORDER BY pk2 DESC LIMIT 21;
drop table t1, t2;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/outfile_loaddata.test b/mysql-test/main/outfile_loaddata.test
index f9e2a357ed3..9d966b1e99d 100644
--- a/mysql-test/main/outfile_loaddata.test
+++ b/mysql-test/main/outfile_loaddata.test
@@ -5,6 +5,9 @@ DROP TABLE IF EXISTS t1, t2;
#enable view protocol after fix MDEV-27871
-- source include/no_view_protocol.inc
+--enable_prepare_warnings
+
+
--echo #
--echo # Bug#31663 FIELDS TERMINATED BY special character
--echo #
@@ -292,6 +295,6 @@ SELECT LENGTH(a) FROM t2;
DROP TABLE t1, t2;
-
+--disable_prepare_warnings
###########################################################################
--echo # End of 5.1 tests.
diff --git a/mysql-test/main/parser.result b/mysql-test/main/parser.result
index f1131538242..50be9dc49c8 100644
--- a/mysql-test/main/parser.result
+++ b/mysql-test/main/parser.result
@@ -109,7 +109,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
create table SUM (a int);
drop table SUM;
create table SYSDATE(a int);
-ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE(a int)' at line 1
+DROP TABLE SYSDATE;
create table SYSDATE (a int);
drop table SYSDATE;
create table SYSTEM_USER(a int);
@@ -246,9 +246,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
create table SUM (a int);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUM (a int)' at line 1
create table SYSDATE(a int);
-ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE(a int)' at line 1
+DROP TABLE SYSDATE;
create table SYSDATE (a int);
-ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE (a int)' at line 1
+DROP TABLE SYSDATE;
create table SYSTEM_USER(a int);
drop table SYSTEM_USER;
create table SYSTEM_USER (a int);
@@ -2189,3 +2189,67 @@ ERROR HY000: Unknown data type: 'ACTION'
#
# End of 10.5 tests
#
+#
+# Start of 10.6 tests
+#
+#
+# MDEV-25510 Assertion `sel->select_lock ==
+# st_select_lex::select_lock_type::NONE' failed in Lex_select_lock::set_to
+#
+(SELECT x FROM t WINDOW w1 AS () FOR UPDATE) LIMIT 1;
+ERROR 42S02: Table 'test.t' doesn't exist
+create table t1 (x int);
+insert into t1 values (1),(2);
+explain extended (SELECT x FROM t1 WINDOW w1 as () FOR UPDATE) LIMIT 1;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00
+Warnings:
+Note 1003 (select `test`.`t1`.`x` AS `x` from `test`.`t1` limit 1)
+explain extended (SELECT x FROM t1 FOR UPDATE) LIMIT 1;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00
+Warnings:
+Note 1003 (select `test`.`t1`.`x` AS `x` from `test`.`t1` limit 1)
+drop table t1;
+#
+# MDEV-19682 sql_mode="oracle" does not support sysdate
+#
+SELECT sysdate LIKE '____-__-__ __:__:__';
+ERROR 42S22: Unknown column 'sysdate' in 'field list'
+SELECT sysdate = sysdate();
+ERROR 42S22: Unknown column 'sysdate' in 'field list'
+SELECT sysdate = sysdate(0);
+ERROR 42S22: Unknown column 'sysdate' in 'field list'
+CREATE DATABASE sysdate;
+DROP DATABASE sysdate;
+CREATE TABLE sysdate (a INT);
+DROP TABLE sysdate;
+CREATE TABLE t1 (sysdate INT);
+DROP TABLE t1;
+CREATE FUNCTION sysdate() RETURNS INT
+BEGIN
+RETURN 1;
+END;
+$$
+Warnings:
+Note 1585 This function 'sysdate' has the same name as a native function
+DROP FUNCTION sysdate;
+BEGIN NOT ATOMIC
+DECLARE sysdate INT DEFAULT 10;
+SELECT sysdate;
+END;
+$$
+sysdate
+10
+BEGIN NOT ATOMIC
+DECLARE a INT DEFAULT 0;
+sysdate:
+WHILE a DO
+SELECT 1;
+LEAVE sysdate;
+END WHILE ;
+END;
+$$
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/parser.test b/mysql-test/main/parser.test
index b21bbda233a..48cda68b416 100644
--- a/mysql-test/main/parser.test
+++ b/mysql-test/main/parser.test
@@ -158,8 +158,8 @@ create table SUM(a int);
create table SUM (a int);
drop table SUM;
---error ER_PARSE_ERROR
create table SYSDATE(a int);
+DROP TABLE SYSDATE;
create table SYSDATE (a int);
drop table SYSDATE;
@@ -332,10 +332,10 @@ create table SUM(a int);
--error ER_PARSE_ERROR
create table SUM (a int);
---error ER_PARSE_ERROR
create table SYSDATE(a int);
---error ER_PARSE_ERROR
+DROP TABLE SYSDATE;
create table SYSDATE (a int);
+DROP TABLE SYSDATE;
create table SYSTEM_USER(a int);
drop table SYSTEM_USER;
@@ -899,6 +899,7 @@ SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 FOR UPDATE;
--echo # "INTO" clause tests
+--enable_prepare_warnings
SELECT 1 FROM t1 INTO @var17727401;
SELECT 1 FROM DUAL INTO @var17727401;
SELECT 1 INTO @var17727401;
@@ -938,6 +939,7 @@ SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1;
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401;
+--disable_prepare_warnings
--error ER_PARSE_ERROR
SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE();
@@ -1431,6 +1433,7 @@ DROP TABLE scientific_notation;
--echo #
--echo # MDEV-6899 extra semicolon in show create event syntax
--echo #
+--disable_ps_protocol
set timestamp=unix_timestamp('2020-10-10 5:5:5');
create table t1 (a int);
delimiter $;
@@ -1451,6 +1454,7 @@ delimiter ;$
query_vertical show create function a;
drop function a;
set timestamp=default;
+--enable_ps_protocol
--echo #
--echo # End of 10.2 tests
@@ -1993,3 +1997,76 @@ SELECT CAST(1 AS ACTION);
--echo #
--echo # End of 10.5 tests
--echo #
+
+--echo #
+--echo # Start of 10.6 tests
+--echo #
+
+--echo #
+--echo # MDEV-25510 Assertion `sel->select_lock ==
+--echo # st_select_lex::select_lock_type::NONE' failed in Lex_select_lock::set_to
+--echo #
+
+--error ER_NO_SUCH_TABLE
+(SELECT x FROM t WINDOW w1 AS () FOR UPDATE) LIMIT 1;
+create table t1 (x int);
+insert into t1 values (1),(2);
+explain extended (SELECT x FROM t1 WINDOW w1 as () FOR UPDATE) LIMIT 1;
+explain extended (SELECT x FROM t1 FOR UPDATE) LIMIT 1;
+drop table t1;
+--echo #
+--echo # MDEV-19682 sql_mode="oracle" does not support sysdate
+--echo #
+
+--enable_prepare_warnings
+
+--error ER_BAD_FIELD_ERROR
+SELECT sysdate LIKE '____-__-__ __:__:__';
+--error ER_BAD_FIELD_ERROR
+SELECT sysdate = sysdate();
+--error ER_BAD_FIELD_ERROR
+SELECT sysdate = sysdate(0);
+
+CREATE DATABASE sysdate;
+DROP DATABASE sysdate;
+
+CREATE TABLE sysdate (a INT);
+DROP TABLE sysdate;
+
+CREATE TABLE t1 (sysdate INT);
+DROP TABLE t1;
+
+DELIMITER $$;
+CREATE FUNCTION sysdate() RETURNS INT
+BEGIN
+ RETURN 1;
+END;
+$$
+DELIMITER ;$$
+DROP FUNCTION sysdate;
+
+DELIMITER $$;
+BEGIN NOT ATOMIC
+ DECLARE sysdate INT DEFAULT 10;
+ SELECT sysdate;
+END;
+$$
+DELIMITER ;$$
+
+DELIMITER $$;
+BEGIN NOT ATOMIC
+ DECLARE a INT DEFAULT 0;
+sysdate:
+ WHILE a DO
+ SELECT 1;
+ LEAVE sysdate;
+ END WHILE ;
+END;
+$$
+DELIMITER ;$$
+
+--disable_prepare_warnings
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/parser_not_embedded.test b/mysql-test/main/parser_not_embedded.test
index 270573ece93..0208ee57a2e 100644
--- a/mysql-test/main/parser_not_embedded.test
+++ b/mysql-test/main/parser_not_embedded.test
@@ -103,6 +103,7 @@ ROLLBACK AND NO CHAIN NO RELEASE;
--echo #
--echo # MDEV-6899 extra semicolon in show create event syntax
--echo #
+--disable_ps_protocol
set timestamp=unix_timestamp('2020-10-10 5:5:5');
delimiter $;
create event a on schedule every 1 day do set @a:=1;select 2$
@@ -110,6 +111,7 @@ delimiter ;$
query_vertical show create event a;
drop event a;
set timestamp=default;
+--enable_ps_protocol
--echo #
--echo # End of 10.2 tests
diff --git a/mysql-test/main/parser_stack.test b/mysql-test/main/parser_stack.test
index 8bc316da18e..5d53ff98902 100644
--- a/mysql-test/main/parser_stack.test
+++ b/mysql-test/main/parser_stack.test
@@ -1,3 +1,7 @@
+if (`SELECT $PS_PROTOCOL != 0`)
+{
+ --skip Test temporarily disabled for ps-protocol
+}
#
# These tests are designed to cause an internal parser stack overflow,
# and trigger my_yyoverflow().
diff --git a/mysql-test/main/partition.result b/mysql-test/main/partition.result
index 6f26ec02148..b2b34b975e3 100644
--- a/mysql-test/main/partition.result
+++ b/mysql-test/main/partition.result
@@ -282,15 +282,15 @@ partition by list (a)
partition p1 values in (2));
insert into t1 values (1,1),(2,1),(2,2),(2,3);
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
drop table t1;
create table t1 (a int)
partition by hash (a);
diff --git a/mysql-test/main/partition.test b/mysql-test/main/partition.test
index 5d5dafdb206..5f4c5f659ca 100644
--- a/mysql-test/main/partition.test
+++ b/mysql-test/main/partition.test
@@ -350,10 +350,12 @@ ENGINE=Memory;
ALTER TABLE t1 ENGINE=NonExistentEngine;
# OK to only specify one partitions engine, since it is already assigned at
# table level (after create, it is specified on all levels and all parts).
+--enable_prepare_warnings
ALTER TABLE t1
PARTITION BY HASH (a)
(PARTITION p0 ENGINE=Memory,
PARTITION p1 ENGINE=NonExistentEngine);
+--disable_prepare_warnings
ALTER TABLE t1 ENGINE=NonExistentEngine;
SHOW CREATE TABLE t1;
DROP TABLE t1;
diff --git a/mysql-test/main/partition_alter.test b/mysql-test/main/partition_alter.test
index dd1b2ba55e6..f5441fe4334 100644
--- a/mysql-test/main/partition_alter.test
+++ b/mysql-test/main/partition_alter.test
@@ -86,11 +86,7 @@ show create table t1;
--error ER_CONSTRAINT_FAILED
insert t1 values (2, '2020-01-03', 20);
drop table t1;
---let $regexp=/#sql-ib[0-9a-f]+\.ibd\n//
---list_files_write_file $datadir.files.txt $datadir/test
---replace_regex $regexp
---cat_file $datadir.files.txt
---remove_file $datadir.files.txt
+--list_files $datadir/test
# MyISAM, different execution path
create table t1(id int, d date not null, b bool not null default 0, primary key(id,d))
@@ -106,10 +102,7 @@ show create table t1;
--error ER_CONSTRAINT_FAILED
insert t1 values (2, '2020-01-03', 20);
drop table t1;
---list_files_write_file $datadir.files.txt $datadir/test
---replace_regex $regexp
---cat_file $datadir.files.txt
---remove_file $datadir.files.txt
+--list_files $datadir/test
#
# MDEV-13097 Online alter of a partitioned MyISAM table with auto_increment
diff --git a/mysql-test/main/partition_exchange.test b/mysql-test/main/partition_exchange.test
index 4125e998623..09629a52add 100644
--- a/mysql-test/main/partition_exchange.test
+++ b/mysql-test/main/partition_exchange.test
@@ -5,6 +5,7 @@
DROP TABLE IF EXISTS t1, t2, t3, t, tp, tsp, tmp;
--enable_warnings
+--enable_prepare_warnings
--echo #
--echo # Bug#11894100: EXCHANGE PARTITION CAN'T BE EXECUTED IF
--echo # ROW_FORMAT WAS SET EXPLICITLY
@@ -554,3 +555,5 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
# Cleanup
DROP TABLE t1, t2;
+
+--disable_prepare_warnings
diff --git a/mysql-test/main/partition_explicit_prune.test b/mysql-test/main/partition_explicit_prune.test
index 9d9b7e782ce..2e9a15d4c5e 100644
--- a/mysql-test/main/partition_explicit_prune.test
+++ b/mysql-test/main/partition_explicit_prune.test
@@ -357,7 +357,9 @@ eval $get_handler_status_counts;
--echo #
SELECT * FROM t1 PARTITION (pNeg, `p10-99`);
FLUSH STATUS;
+--enable_prepare_warnings
SELECT * FROM t1 PARTITION (pNeg, `p10-99`) INTO OUTFILE 'loadtest.txt';
+--disable_prepare_warnings
eval $get_handler_status_counts;
--echo # 1 commit
--echo # 10 locks (1 ha_partition + 4 ha_innobase) x 2 (lock/unlock)
@@ -880,7 +882,6 @@ SELECT * FROM t1 PARTITION (p0);
UNLOCK TABLES;
DROP TABLE t1, t2;
--enable_service_connection
-
--echo #
--echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
--echo #
diff --git a/mysql-test/main/partition_innodb.result b/mysql-test/main/partition_innodb.result
index d5773ac4717..95ca989eabf 100644
--- a/mysql-test/main/partition_innodb.result
+++ b/mysql-test/main/partition_innodb.result
@@ -81,9 +81,6 @@ DROP TABLE t1;
# Bug#54747: Deadlock between REORGANIZE PARTITION and
# SELECT is not detected
#
-SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency;
-SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay;
-SET GLOBAL innodb_thread_concurrency = 1;
CREATE TABLE t1
(user_num BIGINT,
hours SMALLINT,
@@ -116,8 +113,6 @@ connection con1;
# Cleaning up.
disconnect con1;
connection default;
-SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency;
-SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay;
DROP TABLE t1;
#
# Bug#50418: DROP PARTITION does not interact with transactions
diff --git a/mysql-test/main/partition_innodb.test b/mysql-test/main/partition_innodb.test
index 998dd1a154b..563a750b81b 100644
--- a/mysql-test/main/partition_innodb.test
+++ b/mysql-test/main/partition_innodb.test
@@ -96,10 +96,6 @@ DROP TABLE t1;
--echo # SELECT is not detected
--echo #
--disable_view_protocol
-SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency;
-SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay;
-SET GLOBAL innodb_thread_concurrency = 1;
-
CREATE TABLE t1
(user_num BIGINT,
hours SMALLINT,
@@ -144,8 +140,6 @@ COMMIT;
--connection default
-SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency;
-SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay;
DROP TABLE t1;
--enable_view_protocol
@@ -338,7 +332,7 @@ UPDATE t1 SET DATA = data*2 WHERE id = 3;
# PERFORMANCE-VERSION
# grouping/referencing in replace_regex is very slow on long strings,
# removing all before/after the interesting row before grouping/referencing
-#--replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+) lock struct\(s\), heap size [0-9]+, ([0-9]+) row lock\(s\).*/\1 lock struct(s) \2 row lock(s)/
+#--replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MariaDB thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+) lock struct\(s\), heap size [0-9]+, ([0-9]+) row lock\(s\).*/\1 lock struct(s) \2 row lock(s)/
#SHOW ENGINE InnoDB STATUS;
UPDATE t1 SET data = data*2 WHERE data = 2;
@@ -347,7 +341,7 @@ UPDATE t1 SET data = data*2 WHERE data = 2;
# PERFORMANCE-VERSION
# grouping/referencing in replace_regex is very slow on long strings,
# removing all before/after the interesting row before grouping/referencing
-#--replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MySQL thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/
+#--replace_regex /.*---TRANSACTION [0-9]+ [0-9]+, .*, OS thread id [0-9]+// /MariaDB thread id [0-9]+, query id [0-9]+ .*// /.*([0-9]+ lock struct\(s\)), heap size [0-9]+, ([0-9]+ row lock\(s\)).*/\1 \2/
#SHOW ENGINE InnoDB STATUS;
SET @@session.tx_isolation = @old_tx_isolation;
diff --git a/mysql-test/main/partition_innodb_plugin.result b/mysql-test/main/partition_innodb_plugin.result
index 2499c30b681..8211f0aac89 100644
--- a/mysql-test/main/partition_innodb_plugin.result
+++ b/mysql-test/main/partition_innodb_plugin.result
@@ -29,7 +29,7 @@ t1 CREATE TABLE `t1` (
`time` date NOT NULL,
`id2` bigint(20) NOT NULL,
PRIMARY KEY (`id`,`time`)
-) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
PARTITION BY RANGE (to_days(`time`))
(PARTITION `p10` VALUES LESS THAN (734708) ENGINE = InnoDB,
PARTITION `p20` VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
@@ -104,6 +104,10 @@ disconnect con2;
connection default;
SET @@global.innodb_strict_mode = @old_innodb_strict_mode;
SET @@global.innodb_file_per_table = @old_innodb_file_per_table;
+SET @save_detect= @@GLOBAL.innodb_deadlock_detect;
+SET @save_report= @@GLOBAL.innodb_deadlock_report;
+SET GLOBAL innodb_deadlock_detect=ON;
+SET GLOBAL innodb_deadlock_report=BASIC;
SET NAMES utf8;
CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a))
ENGINE=InnoDB
@@ -148,6 +152,8 @@ set sql_mode = 'ANSI_QUOTES';
SHOW ENGINE InnoDB STATUS;
Type Name Status
InnoDB index PRIMARY of table `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */
+SET GLOBAL innodb_deadlock_detect= @save_detect;
+SET GLOBAL innodb_deadlock_report= @save_report;
set @@sql_mode = @old_sql_mode;
connection con1;
ROLLBACK;
diff --git a/mysql-test/main/partition_innodb_plugin.test b/mysql-test/main/partition_innodb_plugin.test
index 4f3f2d1fcc8..c24945152b3 100644
--- a/mysql-test/main/partition_innodb_plugin.test
+++ b/mysql-test/main/partition_innodb_plugin.test
@@ -41,9 +41,12 @@ SET @old_innodb_file_per_table = @@global.innodb_file_per_table;
SET @old_innodb_strict_mode = @@global.innodb_strict_mode;
SET @@global.innodb_file_per_table = ON,
@@global.innodb_strict_mode = ON;
+--disable_query_log
+SET @save_innodb_read_only_compressed=@@GLOBAL.innodb_read_only_compressed;
+SET GLOBAL innodb_read_only_compressed=OFF;
+--enable_query_log
--connect(con1,localhost,root,,)
-
CREATE TABLE t1 (id INT NOT NULL
PRIMARY KEY,
user_num CHAR(10)
@@ -90,12 +93,19 @@ DROP TABLE t1;
--connection default
SET @@global.innodb_strict_mode = @old_innodb_strict_mode;
SET @@global.innodb_file_per_table = @old_innodb_file_per_table;
+--disable_query_log
+SET GLOBAL innodb_read_only_compressed=@save_innodb_read_only_compressed;
+--enable_query_log
#
# Bug#32430 - show engine innodb status causes errors
#
#change to "disable_service_connection" after fix MDEV-29278
--disable_view_protocol
+SET @save_detect= @@GLOBAL.innodb_deadlock_detect;
+SET @save_report= @@GLOBAL.innodb_deadlock_report;
+SET GLOBAL innodb_deadlock_detect=ON;
+SET GLOBAL innodb_deadlock_report=BASIC;
SET NAMES utf8;
CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a))
ENGINE=InnoDB
@@ -146,6 +156,8 @@ set @old_sql_mode = @@sql_mode;
set sql_mode = 'ANSI_QUOTES';
--replace_regex /.*RECORD LOCKS space id [0-9]* page no [0-9]* n bits [0-9]* // / trx id .*// /.*index .* in // /trx table locks [0-9]* // /total table locks [0-9]* //
SHOW ENGINE InnoDB STATUS;
+SET GLOBAL innodb_deadlock_detect= @save_detect;
+SET GLOBAL innodb_deadlock_report= @save_report;
set @@sql_mode = @old_sql_mode;
connection con1;
REAP;
diff --git a/mysql-test/main/partition_utf8-debug.result b/mysql-test/main/partition_utf8-debug.result
index 569bec3ea8a..db1396198ab 100644
--- a/mysql-test/main/partition_utf8-debug.result
+++ b/mysql-test/main/partition_utf8-debug.result
@@ -41,7 +41,7 @@ CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8
PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_utf8'ß'));
Warnings:
Note 1003 PARTITION BY LIST COLUMNS(`a`)
-(PARTITION `p0` VALUES IN (_utf8 0xc39f) ENGINE = MyISAM)
+(PARTITION `p0` VALUES IN (_utf8mb3 0xc39f) ENGINE = MyISAM)
SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
PARTITION_DESCRIPTION
'ß'
@@ -50,7 +50,7 @@ CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8
PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('ß'));
Warnings:
Note 1003 PARTITION BY LIST COLUMNS(`a`)
-(PARTITION `p0` VALUES IN (_utf8 0xc39f) ENGINE = MyISAM)
+(PARTITION `p0` VALUES IN (_utf8mb3 0xc39f) ENGINE = MyISAM)
SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
PARTITION_DESCRIPTION
'ß'
@@ -77,7 +77,7 @@ CREATE OR REPLACE TABLE t1 (a DATE) CHARACTER SET utf8
PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (FROM_DAYS(100)));
Warnings:
Note 1003 PARTITION BY LIST COLUMNS(`a`)
-(PARTITION `p0` VALUES IN (_utf8 0x303030302d30302d3030) ENGINE = MyISAM)
+(PARTITION `p0` VALUES IN (_utf8mb3 0x303030302d30302d3030) ENGINE = MyISAM)
SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
PARTITION_DESCRIPTION
'0000-00-00'
diff --git a/mysql-test/main/partition_utf8.result b/mysql-test/main/partition_utf8.result
index a60ceb19e8c..f244e7f7489 100644
--- a/mysql-test/main/partition_utf8.result
+++ b/mysql-test/main/partition_utf8.result
@@ -79,7 +79,7 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
PARTITION BY LIST COLUMNS(`a`)
(PARTITION `p0` VALUES IN (_binary 0xff) ENGINE = MyISAM)
SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
diff --git a/mysql-test/main/plugin.result b/mysql-test/main/plugin.result
index c3d974b8052..092e817c48e 100644
--- a/mysql-test/main/plugin.result
+++ b/mysql-test/main/plugin.result
@@ -327,7 +327,7 @@ select convert('adminðŒ†' using utf8);
convert('admin\xF0\x9D\x8C\x86' using utf8)
admin????
Warnings:
-Warning 1300 Invalid utf8 character string: '\xF0\x9D\x8C\x86'
+Warning 1300 Invalid utf8mb3 character string: '\xF0\x9D\x8C\x86'
install plugin foo soname 'adminðŒ†';
ERROR HY000: No paths allowed for shared library
# End of 5.5 test
diff --git a/mysql-test/main/plugin_auth.result b/mysql-test/main/plugin_auth.result
index 621e09f9504..ac10bd06707 100644
--- a/mysql-test/main/plugin_auth.result
+++ b/mysql-test/main/plugin_auth.result
@@ -23,16 +23,16 @@ test mysql.proxies_priv;
SHOW CREATE TABLE mysql.proxies_priv;
Table Create Table
proxies_priv CREATE TABLE `proxies_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Proxied_host` char(60) NOT NULL DEFAULT '',
- `Proxied_user` char(80) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Proxied_host` char(255) NOT NULL DEFAULT '',
+ `Proxied_user` char(128) NOT NULL DEFAULT '',
`With_grant` tinyint(1) NOT NULL DEFAULT 0,
- `Grantor` char(141) NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User proxy privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User proxy privileges'
connect plug_con,localhost,plug,plug_dest;
select USER(),CURRENT_USER();
USER() CURRENT_USER()
diff --git a/mysql-test/main/plugin_auth.test b/mysql-test/main/plugin_auth.test
index 6912462066c..48f35ac65e2 100644
--- a/mysql-test/main/plugin_auth.test
+++ b/mysql-test/main/plugin_auth.test
@@ -4,6 +4,9 @@
--source include/have_innodb.inc
--source include/no_valgrind_without_big.inc
+#enable view protocol after fix MDEV-29542
+--source include/no_view_protocol.inc
+
SET GLOBAL SQL_MODE="";
SET LOCAL SQL_MODE="";
diff --git a/mysql-test/main/plugin_auth_qa_1.test b/mysql-test/main/plugin_auth_qa_1.test
index ab0157b894d..1c53da59844 100644
--- a/mysql-test/main/plugin_auth_qa_1.test
+++ b/mysql-test/main/plugin_auth_qa_1.test
@@ -17,14 +17,14 @@ CREATE USER plug_user IDENTIFIED WITH test_plugin_server AS 'plug_dest';
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
GRANT PROXY ON `plug%dest` TO plug_user;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
REVOKE PROXY ON `plug%dest` FROM plug_user;
GRANT PROXY ON plug_dest TO plug_user;
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
REVOKE PROXY ON plug_dest FROM plug_user;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
DROP USER plug_user,plug_dest;
#
# GRANT...WITH
@@ -37,15 +37,15 @@ GRANT PROXY ON plug_dest TO plug_user;
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
--echo 1)
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
REVOKE ALL PRIVILEGES ON test_user_db.* FROM 'plug_user';
--echo 2)
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
REVOKE PROXY ON plug_dest FROM plug_user;
--echo 3)
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
DROP USER plug_user,plug_dest;
#
# GRANT...WITH/CREATE...BY
@@ -54,11 +54,11 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO plug_user
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
--echo 1)
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
GRANT PROXY ON plug_dest TO plug_user;
--echo 2)
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();USE test_user_db;CREATE TABLE t1(a int);SHOW TABLES;DROP TABLE t1;" 2>&1
REVOKE ALL PRIVILEGES ON test_user_db.* FROM 'plug_user';
#REVOKE ALL PRIVILEGES ON test_user_db.* FROM 'plug_dest'';
DROP USER plug_user,plug_dest;
@@ -71,13 +71,13 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO plug_user
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
GRANT PROXY ON plug_dest TO plug_user;
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
RENAME USER plug_dest TO new_dest;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
GRANT PROXY ON new_dest TO plug_user;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=new_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=new_dest -e "SELECT current_user();SELECT user();" 2>&1
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
DROP USER plug_user,new_dest;
@@ -87,16 +87,16 @@ CREATE USER plug_user
IDENTIFIED WITH test_plugin_server AS 'plug_dest';
CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
GRANT PROXY ON plug_dest TO plug_user;
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
RENAME USER plug_dest TO new_dest;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=plug_dest -e "SELECT current_user();SELECT user();" 2>&1
GRANT PROXY ON new_dest TO plug_user;
--error 1
---exec $MYSQL -S $MASTER_MYSOCK -u plug_user --password=new_dest -e "SELECT current_user();SELECT user();" 2>&1
+--exec $MYSQL -u plug_user --password=new_dest -e "SELECT current_user();SELECT user();" 2>&1
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
DROP USER plug_user,new_dest;
@@ -279,13 +279,13 @@ FLUSH PRIVILEGES;
# Not working with the patch.
#--replace_result $MYSQLADMIN MYSQLADMIN $MASTER_MYPORT MYPORT $MASTER_MYSOCK MYSOCK
-#--exec $MYSQLADMIN -h localhost -P $MASTER_MYPORT -S $MASTER_MYSOCK -u plug_user --password=plug_dest ping 2>&1
+#--exec $MYSQLADMIN -h localhost -u plug_user --password=plug_dest ping 2>&1
#--replace_result $MYSQL_CHECK MYSQL_CHECK $MASTER_MYPORT MYPORT
-#--exec $MYSQL_CHECK -h localhost -P $MASTER_MYPORT -u plug_user --password=plug_dest test
+#--exec $MYSQL_CHECK -h localhost -u plug_user --password=plug_dest test
#--replace_result $MYSQL_DUMP MYSQL_DUMP $MASTER_MYPORT MYPORT
-#--exec $MYSQL_DUMP -h localhost -P $MASTER_MYPORT -u plug_user --password=plug_dest test
+#--exec $MYSQL_DUMP -h localhost -u plug_user --password=plug_dest test
#--replace_result $MYSQL_SHOW MYSQL_SHOW $MASTER_MYPORT MYPORT
-#--exec $MYSQL_SHOW -h localhost -P $MASTER_MYPORT --plugin_dir=../plugin/auth -u plug_user --password=plug_dest 2>&1
+#--exec $MYSQL_SHOW -h localhost --plugin_dir=../plugin/auth -u plug_user --password=plug_dest 2>&1
DROP USER plug_user, plug_dest;
DROP DATABASE test_user_db;
--exit
diff --git a/mysql-test/main/plugin_auth_qa_2.result b/mysql-test/main/plugin_auth_qa_2.result
index ea7227f9faa..de3023a3e42 100644
--- a/mysql-test/main/plugin_auth_qa_2.result
+++ b/mysql-test/main/plugin_auth_qa_2.result
@@ -16,7 +16,7 @@ NULL
SELECT @@external_user;
@@external_user
NULL
-exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
current_user() user() @@local.proxy_user @@local.external_user
qa_test_1_user@% qa_test_1_user@localhost NULL NULL
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -45,7 +45,7 @@ NULL
SELECT @@external_user;
@@external_user
NULL
-exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
current_user() user() @@local.proxy_user @@local.external_user
authenticated_as@% user_name@localhost 'qa_test_2_user'@'%' externaluser
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -62,7 +62,7 @@ CREATE USER qa_test_3_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_3_dest'
CREATE USER qa_test_3_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_3_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_3_dest TO qa_test_3_user;
-exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
current_user() user() @@local.proxy_user @@local.external_user
qa_test_3_dest@% qa_test_3_user@localhost 'qa_test_3_user'@'%' qa_test_3_dest
DROP USER qa_test_3_user;
@@ -72,7 +72,7 @@ CREATE USER qa_test_4_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_4_dest'
CREATE USER qa_test_4_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_4_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_4_dest TO qa_test_4_user;
-exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
current_user() user() @@local.proxy_user @@local.external_user
qa_test_4_dest@% qa_test_4_user@localhost 'qa_test_4_user'@'%' qa_test_4_dest
DROP USER qa_test_4_user;
@@ -91,7 +91,7 @@ User plugin authentication_string Password
mariadb.sys mysql_native_password
qa_test_5_dest mysql_native_password *DFCACE76914AD7BD801FC1A1ECF6562272621A22 *DFCACE76914AD7BD801FC1A1ECF6562272621A22
qa_test_5_user qa_auth_interface qa_test_5_dest
-exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'qa_test_5_user'@'localhost' (using password: YES)
DROP USER qa_test_5_user;
DROP USER qa_test_5_dest;
@@ -106,7 +106,7 @@ User plugin authentication_string Password
mariadb.sys mysql_native_password
qa_test_6_dest mysql_native_password *DFCACE76914AD7BD801FC1A1ECF6562272621A22 *DFCACE76914AD7BD801FC1A1ECF6562272621A22
qa_test_6_user qa_auth_interface qa_test_6_dest
-exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'qa_test_6_user'@'localhost' (using password: YES)
GRANT PROXY ON qa_test_6_dest TO root IDENTIFIED WITH qa_auth_interface AS 'qa_test_6_dest';
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
@@ -114,7 +114,7 @@ User plugin authentication_string Password
mariadb.sys mysql_native_password
qa_test_6_dest mysql_native_password *DFCACE76914AD7BD801FC1A1ECF6562272621A22 *DFCACE76914AD7BD801FC1A1ECF6562272621A22
qa_test_6_user qa_auth_interface qa_test_6_dest
-exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
REVOKE PROXY ON qa_test_6_dest FROM root;
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -122,7 +122,7 @@ User plugin authentication_string
mariadb.sys mysql_native_password
qa_test_6_dest mysql_native_password *DFCACE76914AD7BD801FC1A1ECF6562272621A22
qa_test_6_user qa_auth_interface qa_test_6_dest
-exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
DROP USER qa_test_6_user;
DROP USER qa_test_6_dest;
@@ -135,7 +135,7 @@ CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_interface AS 'qa_test_11_des
CREATE USER qa_test_11_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
-exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'qa_test_11_user'@'localhost' (using password: YES)
DROP USER qa_test_11_user, qa_test_11_dest;
DROP DATABASE test_user_db;
diff --git a/mysql-test/main/plugin_auth_qa_2.test b/mysql-test/main/plugin_auth_qa_2.test
index 9cbc294f84a..17e627ab773 100644
--- a/mysql-test/main/plugin_auth_qa_2.test
+++ b/mysql-test/main/plugin_auth_qa_2.test
@@ -22,8 +22,8 @@ SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
SELECT @@proxy_user;
SELECT @@external_user;
---echo exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---exec $MYSQL -h localhost -P $MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -44,8 +44,8 @@ SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
SELECT @@proxy_user;
SELECT @@external_user;
---echo exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---exec $MYSQL -h localhost -P $MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -61,8 +61,8 @@ CREATE USER qa_test_3_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_3_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_3_dest TO qa_test_3_user;
---echo exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---exec $MYSQL -h localhost -P $MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_3_user;
DROP USER qa_test_3_dest;
@@ -74,8 +74,8 @@ CREATE USER qa_test_4_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_4_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_4_dest TO qa_test_4_user;
---echo exec MYSQL -h localhost -P MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---exec $MYSQL -h localhost -P $MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_4_user;
DROP USER qa_test_4_dest;
@@ -93,9 +93,9 @@ GRANT PROXY ON qa_test_5_dest TO ''@'localhost';
--sorted_result
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
---echo exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL -h localhost -P $MASTER_MYPORT --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost --user=qa_test_5_user --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_5_user;
DROP USER qa_test_5_dest;
@@ -111,25 +111,25 @@ GRANT PROXY ON qa_test_6_dest TO qa_test_6_user;
--sorted_result
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
---echo exec MYSQL -h localhost -P MASTER_MYPORT --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL -h localhost -P $MASTER_MYPORT --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost --user=qa_test_6_user --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
GRANT PROXY ON qa_test_6_dest TO root IDENTIFIED WITH qa_auth_interface AS 'qa_test_6_dest';
--sorted_result
SELECT user,plugin,authentication_string,password FROM mysql.user WHERE user != 'root';
---echo exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL -h localhost -P $MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
REVOKE PROXY ON qa_test_6_dest FROM root;
--sorted_result
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
---echo exec MYSQL -h localhost -P MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL -h localhost -P $MASTER_MYPORT --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL -h localhost --user=root --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_6_user;
DROP USER qa_test_6_dest;
@@ -145,9 +145,9 @@ CREATE USER qa_test_11_dest IDENTIFIED BY 'dest_passwd';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
---echo exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL --default_auth=qa_auth_client -h localhost -P $MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_11_user, qa_test_11_dest;
DROP DATABASE test_user_db;
diff --git a/mysql-test/main/plugin_auth_qa_3.result b/mysql-test/main/plugin_auth_qa_3.result
index 62a37a21478..90176f5c4be 100644
--- a/mysql-test/main/plugin_auth_qa_3.result
+++ b/mysql-test/main/plugin_auth_qa_3.result
@@ -2,10 +2,10 @@ CREATE DATABASE test_user_db;
CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_server AS 'qa_test_11_dest';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
-exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
current_user() user() @@local.proxy_user @@local.external_user
qa_test_11_dest@% qa_test_11_user@localhost 'qa_test_11_user'@'%' NULL
-exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
ERROR 1045 (28000): Access denied for user 'qa_test_2_user'@'localhost' (using password: YES)
DROP USER qa_test_11_user, qa_test_11_dest;
DROP DATABASE test_user_db;
diff --git a/mysql-test/main/plugin_auth_qa_3.test b/mysql-test/main/plugin_auth_qa_3.test
index 579587ef071..12474eccecd 100644
--- a/mysql-test/main/plugin_auth_qa_3.test
+++ b/mysql-test/main/plugin_auth_qa_3.test
@@ -14,12 +14,12 @@ CREATE USER qa_test_11_user IDENTIFIED WITH qa_auth_server AS 'qa_test_11_dest';
GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
---echo exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---exec $MYSQL --default_auth=qa_auth_client -h localhost -P $MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
---echo exec MYSQL --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--echo exec MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
--error 1
---exec $MYSQL --default_auth=qa_auth_client -h localhost -P $MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+--exec $MYSQL --default_auth=qa_auth_client -h localhost -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
DROP USER qa_test_11_user, qa_test_11_dest;
DROP DATABASE test_user_db;
diff --git a/mysql-test/main/pool_of_threads.result b/mysql-test/main/pool_of_threads.result
index d4a7d9092f4..91ad7ab098f 100644
--- a/mysql-test/main/pool_of_threads.result
+++ b/mysql-test/main/pool_of_threads.result
@@ -2091,10 +2091,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/ps.result b/mysql-test/main/ps.result
index 7cd6484d7ff..9dc2c8dfded 100644
--- a/mysql-test/main/ps.result
+++ b/mysql-test/main/ps.result
@@ -1109,12 +1109,12 @@ show create table mysqltest.t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c` char(10) DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
show create table mysqltest.t2;
Table Create Table
t2 CREATE TABLE `t2` (
`test` varchar(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table mysqltest.t1;
drop table mysqltest.t2;
alter database mysqltest character set latin1;
@@ -1728,7 +1728,7 @@ set @@character_set_server= utf8;
execute stmt;
show create database mysqltest_1;
Database Create Database
-mysqltest_1 CREATE DATABASE `mysqltest_1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+mysqltest_1 CREATE DATABASE `mysqltest_1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
drop database mysqltest_1;
deallocate prepare stmt;
set @@character_set_server= @old_character_set_server;
@@ -2726,9 +2726,7 @@ ERROR 42000: FUNCTION test.func_1 does not exist
drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "create event xyz on schedule at now() do select 123";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
deallocate prepare abc;
-ERROR HY000: Unknown prepared statement handler (abc) given to DEALLOCATE PREPARE
drop event if exists xyz;
create event xyz on schedule every 5 minute disable do select 123;
create procedure proc_1() alter event xyz comment 'xyz';
@@ -2748,9 +2746,7 @@ drop procedure proc_1;
create function func_1() returns int begin alter event xyz comment 'xyz'; return 1; end|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
prepare abc from "alter event xyz comment 'xyz'";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
deallocate prepare abc;
-ERROR HY000: Unknown prepared statement handler (abc) given to DEALLOCATE PREPARE
drop event if exists xyz;
create event xyz on schedule every 5 minute disable do select 123;
create procedure proc_1() drop event xyz;
@@ -2765,9 +2761,7 @@ drop procedure proc_1;
create function func_1() returns int begin drop event xyz; return 1; end|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
prepare abc from "drop event xyz";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
deallocate prepare abc;
-ERROR HY000: Unknown prepared statement handler (abc) given to DEALLOCATE PREPARE
drop table if exists t1;
create table t1 (a int, b char(5)) engine=myisam;
insert into t1 values (1, "one"), (2, "two"), (3, "three");
@@ -2979,7 +2973,7 @@ execute stmt;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c` char(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
KEY `c` (`c`(10))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -2987,7 +2981,7 @@ execute stmt;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `c` char(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
KEY `c` (`c`(10))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
@@ -3087,15 +3081,15 @@ DROP TABLE t1;
CREATE TABLE t1(f1 INT);
INSERT INTO t1 VALUES (1),(1);
PREPARE stmt FROM 'EXPLAIN SELECT 1 FROM t1 WHERE (SELECT (SELECT 1 FROM t1 GROUP BY f1))';
+Warnings:
+Note 1249 Select 2 was reduced during optimization
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
3 SUBQUERY t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
@@ -4944,7 +4938,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
PREPARE stmt FROM CONCAT(NULL);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NULL' at line 1
EXECUTE IMMEDIATE ? USING 'SELECT 1';
-ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '? USING 'SELECT 1'' at line 1
+Got one of the listed errors
EXECUTE IMMEDIATE 10;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10' at line 1
EXECUTE IMMEDIATE TIME'10:20:30';
@@ -5273,7 +5267,7 @@ CREATE TABLE t1 AS SELECT @a AS c1;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
diff --git a/mysql-test/main/ps.test b/mysql-test/main/ps.test
index e260803a8d3..bb6ce7d4048 100644
--- a/mysql-test/main/ps.test
+++ b/mysql-test/main/ps.test
@@ -37,14 +37,12 @@ deallocate prepare no_such_statement;
--error 1210
execute stmt1;
-# Nesting ps commands is not allowed:
---error ER_UNSUPPORTED_PS
+# Nesting ps commands is now allowed:
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'prepare nested_stmt from "select 1"';
-
---error ER_UNSUPPORTED_PS
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'execute stmt1';
-
---error ER_UNSUPPORTED_PS
+--error ER_UNSUPPORTED_PS
prepare stmt2 from 'deallocate prepare z';
# PS insert
@@ -2763,12 +2761,11 @@ delimiter ;|
select func_1(), func_1(), func_1() from dual;
--error ER_SP_DOES_NOT_EXIST
drop function func_1;
---error ER_UNSUPPORTED_PS
+
+# CREATE EVENT is now supported by prepared statements
prepare abc from "create event xyz on schedule at now() do select 123";
---error ER_UNKNOWN_STMT_HANDLER
deallocate prepare abc;
-
--disable_warnings
drop event if exists xyz;
create event xyz on schedule every 5 minute disable do select 123;
@@ -2787,9 +2784,9 @@ delimiter |;
--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
create function func_1() returns int begin alter event xyz comment 'xyz'; return 1; end|
delimiter ;|
---error ER_UNSUPPORTED_PS
+
+# ALTER EVENT is now supported by prepared statements
prepare abc from "alter event xyz comment 'xyz'";
---error ER_UNKNOWN_STMT_HANDLER
deallocate prepare abc;
@@ -2808,9 +2805,8 @@ delimiter |;
--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
create function func_1() returns int begin drop event xyz; return 1; end|
delimiter ;|
---error ER_UNSUPPORTED_PS
+# DROP EVENT is now supported by prepared statements
prepare abc from "drop event xyz";
---error ER_UNKNOWN_STMT_HANDLER
deallocate prepare abc;
@@ -4414,7 +4410,12 @@ EXECUTE IMMEDIATE CONCAT(NULL);
--error ER_PARSE_ERROR
PREPARE stmt FROM CONCAT(NULL);
---error ER_PARSE_ERROR
+# Expects any of the following errors CR_PARAMS_NOT_BOUND, ER_PARSE_ERROR.
+# ER_PARSE_ERROR is generated in case the EXECUTE IMMEDIATE statement
+# is sent as a regular statement via text protocol. The error
+# CR_PARAMS_NOT_BOUND is generated by the MySQL API function mysql_stmt_execute
+# when this test file is run with the option --ps-protocol
+--error 2031,ER_PARSE_ERROR
EXECUTE IMMEDIATE ? USING 'SELECT 1';
--error ER_PARSE_ERROR
diff --git a/mysql-test/main/ps_1general.result b/mysql-test/main/ps_1general.result
index f5f2ce79149..ca2447b6b26 100644
--- a/mysql-test/main/ps_1general.result
+++ b/mysql-test/main/ps_1general.result
@@ -264,6 +264,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
prepare stmt4 from ' show tables from test like ''t2%'' ';
execute stmt4;
@@ -291,9 +292,9 @@ a int(11) NO PRI NULL
create index t2_idx on t2(b);
prepare stmt4 from ' show index from t2 from test ';
execute stmt4;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE NO
prepare stmt4 from ' show table status from test like ''t2%'' ';
execute stmt4;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
@@ -386,9 +387,7 @@ ERROR HY000: This command is not supported in the prepared statement protocol ye
prepare stmt1 from ' deallocate prepare never_prepared ' ;
ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from 'alter view v1 as select 2';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt4 from ' use test ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' create database mysqltest ';
create database mysqltest ;
prepare stmt3 from ' drop database mysqltest ';
@@ -402,12 +401,9 @@ drop table t2 ;
execute stmt3;
ERROR 42S02: Table 'test.t2' doesn't exist
prepare stmt3 from ' lock tables t1 read ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' unlock tables ' ;
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' load data infile ''<MYSQLTEST_VARDIR>/tmp/data.txt''
into table t1 fields terminated by ''\t'' ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt1 from ' select * into outfile ''<MYSQLTEST_VARDIR>/tmp/data.txt'' from t1 ';
execute stmt1 ;
prepare stmt1 from ' optimize table t1 ' ;
@@ -415,7 +411,6 @@ prepare stmt1 from ' analyze table t1 ' ;
prepare stmt1 from ' checksum table t1 ' ;
prepare stmt1 from ' repair table t1 ' ;
prepare stmt1 from ' handler t1 open ';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt3 from ' commit ' ;
prepare stmt3 from ' rollback ' ;
prepare stmt4 from ' SET sql_mode=ansi ';
diff --git a/mysql-test/main/ps_1general.test b/mysql-test/main/ps_1general.test
index b2785178e5b..20f2ad019f4 100644
--- a/mysql-test/main/ps_1general.test
+++ b/mysql-test/main/ps_1general.test
@@ -406,19 +406,16 @@ deallocate prepare stmt_do ;
deallocate prepare stmt_set ;
## nonsense like prepare of prepare,execute or deallocate
---error ER_UNSUPPORTED_PS
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' prepare stmt2 from '' select 1 '' ' ;
---error ER_UNSUPPORTED_PS
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' execute stmt2 ' ;
---error ER_UNSUPPORTED_PS
+--error ER_UNSUPPORTED_PS
prepare stmt1 from ' deallocate prepare never_prepared ' ;
-## We don't support alter view as prepared statements
---error ER_UNSUPPORTED_PS
prepare stmt1 from 'alter view v1 as select 2';
## switch the database connection
---error ER_UNSUPPORTED_PS
prepare stmt4 from ' use test ' ;
## create/drop database
@@ -435,9 +432,7 @@ drop table t2 ;
--error ER_NO_SUCH_TABLE
execute stmt3;
## lock/unlock
---error ER_UNSUPPORTED_PS
prepare stmt3 from ' lock tables t1 read ' ;
---error ER_UNSUPPORTED_PS
prepare stmt3 from ' unlock tables ' ;
## Load/Unload table contents
@@ -446,7 +441,6 @@ prepare stmt3 from ' unlock tables ' ;
--remove_file $datafile
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
---error ER_UNSUPPORTED_PS
eval prepare stmt1 from ' load data infile ''$datafile''
into table t1 fields terminated by ''\t'' ';
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
@@ -461,7 +455,6 @@ prepare stmt1 from ' repair table t1 ' ;
--remove_file $datafile
## handler
---error ER_UNSUPPORTED_PS
prepare stmt1 from ' handler t1 open ';
diff --git a/mysql-test/main/ps_ddl.result b/mysql-test/main/ps_ddl.result
index ace2682b637..dcbb6982702 100644
--- a/mysql-test/main/ps_ddl.result
+++ b/mysql-test/main/ps_ddl.result
@@ -769,7 +769,7 @@ deallocate prepare stmt;
#
# Test 3: View referencing an Information schema table
#
-create view t1 as select table_name from information_schema.views order by table_name;
+create view t1 as select table_name from information_schema.views where table_schema <> 'sys' order by table_name;
prepare stmt from "select * from t1";
execute stmt;
table_name
@@ -2244,7 +2244,6 @@ SUCCESS
drop table if exists t1;
create table t1 (a varchar(20));
prepare stmt from "load data infile '../std_data_ln/words.dat' into table t1";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
drop table t1;
#
# SQLCOM_SHOW_DATABASES
@@ -2295,11 +2294,11 @@ drop table if exists t1;
create table t1 (a int);
prepare stmt from "show keys from t1 where (1) in (select * from t1)";
execute stmt;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
drop table t1;
create table t1 (x int);
execute stmt;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
drop table t1;
deallocate prepare stmt;
#
@@ -2516,7 +2515,6 @@ SUCCESS
drop view if exists v1;
create view v1 as select 1;
prepare stmt from "alter view v1 as select 2";
-ERROR HY000: This command is not supported in the prepared statement protocol yet
drop view v1;
# Cleanup
#
diff --git a/mysql-test/main/ps_ddl.test b/mysql-test/main/ps_ddl.test
index 21f2b715e86..e12fb11d50f 100644
--- a/mysql-test/main/ps_ddl.test
+++ b/mysql-test/main/ps_ddl.test
@@ -63,6 +63,7 @@ drop view if exists v1, v2;
TRUNCATE TABLE mysql.general_log;
delimiter |;
+--enable_prepare_warnings
create procedure p_verify_reprepare_count(expected int)
begin
declare old_reprepare_count int default @reprepare_count;
@@ -80,6 +81,7 @@ begin
select '' as "SUCCESS";
end if;
end|
+--disable_prepare_warnings
delimiter ;|
set @reprepare_count= 0;
flush status;
@@ -702,7 +704,7 @@ deallocate prepare stmt;
--echo #
--echo # Test 3: View referencing an Information schema table
--echo #
-create view t1 as select table_name from information_schema.views order by table_name;
+create view t1 as select table_name from information_schema.views where table_schema <> 'sys' order by table_name;
prepare stmt from "select * from t1";
execute stmt;
@@ -905,14 +907,18 @@ begin
return x;
end|
delimiter ;|
+--enable_prepare_warnings
create procedure p1(out x int) select max(a) from t1 into x;
+--disable_prepare_warnings
prepare stmt from "select * from v1";
execute stmt;
execute stmt;
call p_verify_reprepare_count(0);
drop procedure p1;
+--enable_prepare_warnings
create procedure p1(out x int) select max(a) from t2 into x;
+--disable_prepare_warnings
--echo # XXX: used to be a bug. The prelocked list was not invalidated
--echo # and we kept opening table t1, whereas the procedure
--echo # is now referring to table t2
@@ -1887,7 +1893,6 @@ call p_verify_reprepare_count(8);
drop table if exists t1;
--enable_warnings
create table t1 (a varchar(20));
---error ER_UNSUPPORTED_PS
prepare stmt from "load data infile '../std_data_ln/words.dat' into table t1";
drop table t1;
@@ -2209,7 +2214,6 @@ call p_verify_reprepare_count(17);
drop view if exists v1;
--enable_warnings
create view v1 as select 1;
---error ER_UNSUPPORTED_PS
prepare stmt from "alter view v1 as select 2";
drop view v1;
diff --git a/mysql-test/main/ps_ddl1.test b/mysql-test/main/ps_ddl1.test
index 0145d445a14..e0441cb0ab8 100644
--- a/mysql-test/main/ps_ddl1.test
+++ b/mysql-test/main/ps_ddl1.test
@@ -30,6 +30,7 @@ drop view if exists t1;
drop schema if exists mysqltest;
--enable_warnings
+--enable_prepare_warnings
delimiter |;
create procedure p_verify_reprepare_count(expected int)
begin
@@ -48,6 +49,7 @@ begin
select '' as "SUCCESS";
end if;
end|
+--disable_prepare_warnings
delimiter ;|
set @reprepare_count= 0;
flush status;
diff --git a/mysql-test/main/ps_missed_cmds.result b/mysql-test/main/ps_missed_cmds.result
new file mode 100644
index 00000000000..966c4c6313b
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds.result
@@ -0,0 +1,547 @@
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+#
+# MDEV-16708: Unsupported commands for prepared statements
+#
+# Disable ps-protocol explicitly in order to test support of
+# prepared statements for use case when statements passed
+# to the server via text client-server protocol (in contrast
+# with binary protocol used in the test file
+# ps_missed_cmds_bin_prot.test)
+# Test case 1: Check that the statement 'LOAD DATA' is supported
+# by prepared statements
+# First, set up environment for use by the 'LOAD DATA' statement
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+SELECT * INTO OUTFILE 'load.data' FROM t1;
+PREPARE stmt_1 FROM "LOAD DATA INFILE 'load.data' INTO TABLE t1";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'LOAD DATA' statement
+# were damaged.
+EXECUTE stmt_1;
+SELECT * FROM t1;
+a
+1
+1
+1
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+# Test case 2: Check that the 'LOCK TABLE', 'UNLOCK TABLES' statements
+# are supported by prepared statements
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM "LOCK TABLE t1 READ";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'LOCK TABLE READ'
+# statement were damaged.
+EXECUTE stmt_1;
+PREPARE stmt_1 FROM "UNLOCK TABLE";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'UNLOCK TABLE' statement
+# were damaged.
+EXECUTE stmt_1;
+PREPARE stmt_1 FROM "LOCK TABLE t1 WRITE";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'LOCK TABLE WRITE'
+# statement were damaged.
+EXECUTE stmt_1;
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+UNLOCK TABLE;
+DROP TABLE t1;
+# Test case 3: Check that the 'USE' statement is supported by
+# prepared statements
+CREATE DATABASE mdev_16708_db;
+PREPARE stmt_1 FROM 'USE mdev_16708_db';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'USE' statement
+# were damaged.
+EXECUTE stmt_1;
+# Check that the current database has been changed
+SELECT DATABASE();
+DATABASE()
+mdev_16708_db
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+USE test;
+DROP DATABASE mdev_16708_db;
+# Test case 4: Check that the 'ALTER DATABASE' statement is supported
+# by prepared statements
+CREATE DATABASE mdev_16708_db;
+PREPARE stmt_1 FROM "ALTER DATABASE mdev_16708_db COMMENT 'New comment'";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER DATABASE' statement
+# were damaged.
+EXECUTE stmt_1;
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+USE test;
+DROP DATABASE mdev_16708_db;
+# Test case 5: Check that the 'CREATE FUNCTION/ALTER FUNCTION/
+# DROP FUNCTION' statements are supported by prepared statements
+PREPARE stmt_1 FROM 'CREATE FUNCTION f1() RETURNS INT RETURN 1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE FUNCTION'
+# statement were damaged. The second attempt to execute the prepared
+# statement stmt_1 results in error ER_SP_ALREADY_EXISTS since
+# the stored function f() has been created on first run of stmt1.
+EXECUTE stmt_1;
+ERROR 42000: FUNCTION f1 already exists
+PREPARE stmt_1 FROM 'ALTER FUNCTION f1 SQL SECURITY INVOKER';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER FUNCTION'
+# statement were damaged.
+EXECUTE stmt_1;
+PREPARE stmt_1 FROM 'DROP FUNCTION f1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling 'DROP FUNCTION' statement
+# were damaged. The second attempt to run 'DROP FUNCTION f1' using
+# prepared statement expectedly results in issuing the error
+# ER_SP_DOES_NOT_EXIST since the stored function was dropped on first
+# executuon of the prepared statement stmt_1.
+EXECUTE stmt_1;
+ERROR 42000: FUNCTION test.f1 does not exist
+# Test case 6: Check that the 'CHECK TABLE' statement is supported
+# by prepared statements
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'CHECK TABLE t1';
+EXECUTE stmt_1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CHECK TABLE' statement
+# were damaged.
+EXECUTE stmt_1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+# Test case 7: Check that the BEGIN/SAVEPOINT/RELEASE SAVEPOINT
+# statements are supported by prepared statements
+# Set up environmentr for the test case
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'BEGIN';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'BEGIN' statement
+# were damaged.
+EXECUTE stmt_1;
+INSERT INTO t1 VALUES (1);
+# Run 'SAVEPOINT s1' using prepared statements
+PREPARE stmt_2 FROM 'SAVEPOINT s1';
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'SAVEPOINT' statement
+# were damaged.
+EXECUTE stmt_2;
+INSERT INTO t1 VALUES (2);
+# Expected rows: '1' and '2'
+SELECT * FROM t1;
+a
+1
+2
+# Rollback the last row inserted ('2')
+ROLLBACK TO SAVEPOINT s1;
+# Expected output from t1 after transaction has been rolled back
+# to the savepoint is '1'. If it is case then the statement SAVEPOINT
+# was handled successfully with prepared statement
+SELECT * FROM t1;
+a
+1
+PREPARE stmt_3 FROM 'RELEASE SAVEPOINT s1';
+EXECUTE stmt_3;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'RELEASE' statement
+# were damaged. The second attempt to release the same savepoint
+# expectedly lead to error 'SAVEPOINT s1 does not exist'
+# that's just ignored.
+EXECUTE stmt_3;
+ERROR 42000: SAVEPOINT s1 does not exist
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DROP TABLE t1;
+# Test case 8: Check that the 'PURGE BINARY LOGS BEFORE' statement
+# is supported by prepared statements
+PREPARE stmt_1 FROM "PURGE BINARY LOGS BEFORE '2020-11-17'";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'PURGE BINARY LOGS BEFORE'
+# statement were damaged.
+EXECUTE stmt_1;
+# Check that the 'PURGE BINARY LOGS TO' statement is supported by
+# prepared statements
+PREPARE stmt_1 FROM "PURGE BINARY LOGS TO 'mariadb-bin.000063'";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'PURGE BINARY LOGS TO'
+# statement were damaged.
+EXECUTE stmt_1;
+# Test case 9: Check that the 'HANDLER OPEN/HANDLER READ/
+# HANDLER CLOSE' statements are supported by prepared statements
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+PREPARE stmt_1 FROM 'HANDLER t1 OPEN';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'HANDLER OPEN'
+# statement were damaged. Execution of this statement the second
+# time expectedly results in emitting the error ER_NONUNIQ_TABLE.
+# The same error is issued in case the statement 'HANDLER t1 OPEN' is
+# executed twice using a regular statement.
+EXECUTE stmt_1;
+ERROR 42000: Not unique table/alias: 't1'
+PREPARE stmt_2 FROM 'HANDLER t1 READ FIRST';
+PREPARE stmt_3 FROM 'HANDLER t1 READ NEXT';
+PREPARE stmt_4 FROM 'HANDLER t1 CLOSE';
+EXECUTE stmt_2;
+a
+1
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'HANDLER READ FIRST'
+# statement were damaged.
+EXECUTE stmt_2;
+a
+1
+EXECUTE stmt_3;
+a
+1
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'HANDLER READ NEXT'
+# statement were damaged.
+EXECUTE stmt_3;
+a
+EXECUTE stmt_4;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'HANDLER CLOSE'
+# statement were damaged. Execution of this statement the second
+# time results in emitting the error ER_UNKNOWN_TABLE. The same error
+# is issued in case the statement 'HANDLER t1 CLOSE' executed twice
+# using a regular statement.
+EXECUTE stmt_4;
+ERROR 42S02: Unknown table 't1' in HANDLER
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DEALLOCATE PREPARE stmt_4;
+DROP TABLE t1;
+# Test case 10: Check that the HELP statement
+# is supported by prepared statements
+INSERT INTO mysql.help_topic VALUES (0, 'Tamagotchi', 0, 'This digital pet is not a KB article', 'no example', 'https://tamagotchi.com/');
+PREPARE stmt_1 FROM "HELP `Tamagotchi`";
+EXECUTE stmt_1;
+name description example
+Tamagotchi This digital pet is not a KB article no example
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'HELP' statement
+# were damaged.
+EXECUTE stmt_1;
+name description example
+Tamagotchi This digital pet is not a KB article no example
+DELETE FROM mysql.help_topic WHERE help_topic_id = 0;
+# Test case 11: Check that the 'CREATE PROCEDURE' statement
+# is supported by prepared statements
+PREPARE stmt_1 FROM 'CREATE PROCEDURE p1() SET @a=1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE PROCEDURE'
+# statement were damaged. Execution of this statement the second
+# time expectedly results in emitting the error ER_SP_ALREADY_EXISTS.
+# The same error is issued in case the 'HANDLER t1 OPEN' statement
+# is executed twice using a regular statement.
+EXECUTE stmt_1;
+ERROR 42000: PROCEDURE p1 already exists
+# Test case 12: Check that the 'ALTER PROCEDURE' statement is supported
+# by prepared statements.
+PREPARE stmt_1 FROM 'ALTER PROCEDURE p1 SQL SECURITY INVOKER';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER PROCEDURE'
+# statement were damaged.
+EXECUTE stmt_1;
+# Test case 13: Check that the 'DROP PROCEDURE' statement is supported
+# by prepared statements.
+PREPARE stmt_1 FROM 'DROP PROCEDURE p1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'DROP PROCEDURE' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_SP_DOES_NOT_EXIST.
+EXECUTE stmt_1;
+ERROR 42000: PROCEDURE test.p1 does not exist
+# Test case 14: Check that the 'CALL' statement is supported
+# by prepared statements.
+CREATE PROCEDURE p1() SET @a=1;
+PREPARE stmt_1 FROM 'CALL p1()';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CALL' statement
+# were damaged.
+EXECUTE stmt_1;
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP PROCEDURE p1;
+# Test case 15: Check that the 'CREATE VIEW' statement can be executed
+# as a prepared statement.
+# Create environment for the test case
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+PREPARE stmt_1 FROM 'CREATE VIEW v1 AS SELECT * FROM t1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE VIEW'
+# statement were damaged. The second execution of the prepared
+# statement stmt_1 results in error ER_TABLE_EXISTS_ERROR since
+# the view v1 does already exist. It is expected behaviour.
+EXECUTE stmt_1;
+ERROR 42S01: Table 'v1' already exists
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP VIEW v1;
+DROP TABLE t1;
+# Test case 16: Check that the 'CREATE TRIGGER' statement can be executed
+# as a prepared statement.
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a=1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE VIEW' statement
+# were damaged. The second execution of the prepared statement stmt_1
+# results in error ER_TRG_ALREADY_EXISTS since the trigger trg1 does
+# already exist. It is expected behaviour.
+EXECUTE stmt_1;
+ERROR HY000: Trigger 'test.trg1' already exists
+# Test case 17: Check that the 'DROP TRIGGER' statement can be executed
+# as a prepared statement.
+# This test relies on presence of the trigger trg1 created by
+# the test case 16.
+PREPARE stmt_1 FROM 'DROP TRIGGER trg1';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'DROP TRIGGER' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_TRG_DOES_NOT_EXIST.
+EXECUTE stmt_1;
+ERROR HY000: Trigger does not exist
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+# Test case 18: Check that XA related SQL statements can be executed
+# as prepared statements.
+# Create the table t1 used by XA transaction.
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM "XA START 'xid1'";
+PREPARE stmt_2 FROM "XA END 'xid1'";
+PREPARE stmt_3 FROM "XA PREPARE 'xid1'";
+PREPARE stmt_4 FROM "XA RECOVER";
+PREPARE stmt_5 FROM "XA COMMIT 'xid1'";
+PREPARE stmt_6 FROM "XA ROLLBACK 'xid1'";
+# Start a new XA transaction
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'XA START' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error XAER_RMFAIL since there is active
+# XA transaction that has just been already.
+EXECUTE stmt_1;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state
+INSERT INTO t1 VALUES (1);
+# End the current XA transaction
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'XA END' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error XAER_RMFAIL since the XA transaction
+# with XID 'xid1' has been already ended.
+EXECUTE stmt_2;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
+# Prepare the current XA transaction for finalization
+EXECUTE stmt_3;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'XA END' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error XAER_RMFAIL since the XA transaction
+# with XID 'xid1' has been already ended.
+EXECUTE stmt_3;
+ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state
+# Run XA RECOVER as a prepared statement
+EXECUTE stmt_4;
+formatID gtrid_length bqual_length data
+1 4 0 xid1
+# And execute it yet another time to check that no internal structures
+# used for handling the statement 'XA RECOVER' were damaged.
+EXECUTE stmt_4;
+formatID gtrid_length bqual_length data
+1 4 0 xid1
+# Commit the current XA transaction
+EXECUTE stmt_5;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'XA COMMIT' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error XAER_NOTA since the XA transaction
+# with XID 'xid1' has been finalized and no more exists.
+EXECUTE stmt_5;
+ERROR XAE04: XAER_NOTA: Unknown XID
+# Query the table t1 to check that it contains a record inserted by
+# the XA transaction just finished.
+SELECT * FROM t1;
+a
+1
+# Using prepared statements start a new XA transaction, INSERT a row
+# into the table t1, prepare the XA transaction and rollback it.
+# This use case is similar to precedence one except it does rollback
+# XA transaction instead commit it. Therefore every prepared statement
+# is executed only once except the last XA ROLLBACK.
+# Start a new XA transaction
+EXECUTE stmt_1;
+INSERT INTO t1 VALUES (1);
+# End the current XA transaction
+EXECUTE stmt_2;
+# Prepare the current XA transaction for finalization
+EXECUTE stmt_3;
+# Rolback the current XA transaction
+EXECUTE stmt_6;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the statement 'XA ROLLBACK'
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error XAER_NOTA since the XA transaction
+# with XID 'xid1' has been finalized and no more exists.
+EXECUTE stmt_6;
+ERROR XAE04: XAER_NOTA: Unknown XID
+# Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DEALLOCATE PREPARE stmt_4;
+DEALLOCATE PREPARE stmt_5;
+DEALLOCATE PREPARE stmt_6;
+# Test case 19: Check that the CREATE SERVER/ALTER SERVER/DROP SERVER
+# statements can be executed as prepared statements.
+PREPARE stmt_1 FROM "CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'u1', HOST '127.0.0.1')";
+PREPARE stmt_2 FROM "ALTER SERVER s OPTIONS (USER 'u2')";
+PREPARE stmt_3 FROM "DROP SERVER s";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE SERVER' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_FOREIGN_SERVER_EXISTS
+# since a server with same has just been created.
+EXECUTE stmt_1;
+ERROR HY000: Cannot create foreign server 's' as it already exists
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER SERVER' statement
+# were damaged.
+EXECUTE stmt_2;
+EXECUTE stmt_3;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'DROP SERVER' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_FOREIGN_SERVER_DOESNT_EXIST
+# since the server with same has just been dropped.
+EXECUTE stmt_3;
+ERROR HY000: The foreign server name you are trying to reference does not exist. Data source error: s
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+# Test case 21: Check that the SIGNAL and RESIGNAL statements
+# can be executed as a prepared statement
+PREPARE stmt_1 FROM "SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT='Hello, world!'";
+EXECUTE stmt_1;
+ERROR 45000: Hello, world!
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'SIGNAL' statement
+# were damaged.
+EXECUTE stmt_1;
+ERROR 45000: Hello, world!
+PREPARE stmt_1 FROM 'RESIGNAL SET MYSQL_ERRNO = 5';
+EXECUTE stmt_1;
+ERROR 0K000: RESIGNAL when handler not active
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'RESIGNAL' statement
+# were damaged.
+EXECUTE stmt_1;
+ERROR 0K000: RESIGNAL when handler not active
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+# Test case 23: Check the 'GET DIAGNOSTICS' statement
+# can be executed as a prepared statement
+PREPARE stmt_1 FROM 'GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT';
+# Query from non existent table to fill the diagnostics area
+# with information
+SELECT * FROM non_existent_table_1;
+ERROR 42S02: Table 'test.non_existent_table_1' doesn't exist
+EXECUTE stmt_1;
+# Check that information from diagnostics area has been retrieved
+SELECT @sqlstate, @errno, @text;
+@sqlstate @errno @text
+42S02 1146 Table 'test.non_existent_table_1' doesn't exist
+SELECT * FROM non_existent_table_1;
+ERROR 42S02: Table 'test.non_existent_table_1' doesn't exist
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the
+# 'GET DIAGNOSTICS CONDITION' statement were damaged.
+EXECUTE stmt_1;
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+# Test case 24: Check the statements 'BACKUP'/'BACKUP UNLOCK'
+# can be executed as a prepared statement
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'BACKUP LOCK t1';
+PREPARE stmt_2 FROM 'BACKUP UNLOCK';
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'BACKUP LOCK'
+# statement were damaged.
+EXECUTE stmt_1;
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'BACKUP UNLOCK'
+# statement were damaged.
+EXECUTE stmt_2;
+# Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+# Test Test case 25: Check the statements 'CREATE/ALTER/DROP TABLEPSPACE'
+# can be executed as a prepared statement
+PREPARE stmt_1 FROM "CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENGINE=InnoDB";
+PREPARE stmt_2 FROM "ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_1.ibd' ENGINE=InnoDB";
+PREPARE stmt_3 FROM "DROP TABLESPACE ts1 ENGINE=InnoDB";
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE TABLESPACE'
+# statement were damaged.
+EXECUTE stmt_1;
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER TABLESPACE'
+# statement were damaged.
+EXECUTE stmt_2;
+EXECUTE stmt_3;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'DROP TABLESPACE'
+# statement were damaged.
+EXECUTE stmt_3;
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds.test b/mysql-test/main/ps_missed_cmds.test
new file mode 100644
index 00000000000..8b80a7c7e5d
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds.test
@@ -0,0 +1,639 @@
+--source include/have_innodb.inc
+
+if (`SELECT $PS_PROTOCOL != 0`)
+{
+ --skip Need regular protocol but ps-protocol was specified
+}
+
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+
+--echo #
+--echo # MDEV-16708: Unsupported commands for prepared statements
+--echo #
+
+--echo # Disable ps-protocol explicitly in order to test support of
+--echo # prepared statements for use case when statements passed
+--echo # to the server via text client-server protocol (in contrast
+--echo # with binary protocol used in the test file
+--echo # ps_missed_cmds_bin_prot.test)
+--disable_ps_protocol
+
+--echo # Test case 1: Check that the statement 'LOAD DATA' is supported
+--echo # by prepared statements
+
+--echo # First, set up environment for use by the 'LOAD DATA' statement
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+SELECT * INTO OUTFILE 'load.data' FROM t1;
+
+PREPARE stmt_1 FROM "LOAD DATA INFILE 'load.data' INTO TABLE t1";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'LOAD DATA' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+SELECT * FROM t1;
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+--let $datadir= `select @@datadir`
+--remove_file $datadir/test/load.data
+
+--echo # Test case 2: Check that the 'LOCK TABLE', 'UNLOCK TABLES' statements
+--echo # are supported by prepared statements
+CREATE TABLE t1 (a INT);
+
+PREPARE stmt_1 FROM "LOCK TABLE t1 READ";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'LOCK TABLE READ'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+PREPARE stmt_1 FROM "UNLOCK TABLE";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'UNLOCK TABLE' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+PREPARE stmt_1 FROM "LOCK TABLE t1 WRITE";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'LOCK TABLE WRITE'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+UNLOCK TABLE;
+DROP TABLE t1;
+
+--echo # Test case 3: Check that the 'USE' statement is supported by
+--echo # prepared statements
+--disable_service_connection
+CREATE DATABASE mdev_16708_db;
+PREPARE stmt_1 FROM 'USE mdev_16708_db';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'USE' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+--echo # Check that the current database has been changed
+SELECT DATABASE();
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+USE test;
+DROP DATABASE mdev_16708_db;
+--enable_service_connection
+--echo # Test case 4: Check that the 'ALTER DATABASE' statement is supported
+--echo # by prepared statements
+CREATE DATABASE mdev_16708_db;
+PREPARE stmt_1 FROM "ALTER DATABASE mdev_16708_db COMMENT 'New comment'";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER DATABASE' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+USE test;
+DROP DATABASE mdev_16708_db;
+
+--echo # Test case 5: Check that the 'CREATE FUNCTION/ALTER FUNCTION/
+--echo # DROP FUNCTION' statements are supported by prepared statements
+PREPARE stmt_1 FROM 'CREATE FUNCTION f1() RETURNS INT RETURN 1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE FUNCTION'
+--echo # statement were damaged. The second attempt to execute the prepared
+--echo # statement stmt_1 results in error ER_SP_ALREADY_EXISTS since
+--echo # the stored function f() has been created on first run of stmt1.
+--error ER_SP_ALREADY_EXISTS
+EXECUTE stmt_1;
+
+PREPARE stmt_1 FROM 'ALTER FUNCTION f1 SQL SECURITY INVOKER';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER FUNCTION'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+PREPARE stmt_1 FROM 'DROP FUNCTION f1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling 'DROP FUNCTION' statement
+--echo # were damaged. The second attempt to run 'DROP FUNCTION f1' using
+--echo # prepared statement expectedly results in issuing the error
+--echo # ER_SP_DOES_NOT_EXIST since the stored function was dropped on first
+--echo # executuon of the prepared statement stmt_1.
+--error ER_SP_DOES_NOT_EXIST
+EXECUTE stmt_1;
+
+--echo # Test case 6: Check that the 'CHECK TABLE' statement is supported
+--echo # by prepared statements
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'CHECK TABLE t1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CHECK TABLE' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+
+--echo # Test case 7: Check that the BEGIN/SAVEPOINT/RELEASE SAVEPOINT
+--echo # statements are supported by prepared statements
+
+--disable_view_protocol
+--echo # Set up environmentr for the test case
+CREATE TABLE t1 (a INT);
+
+PREPARE stmt_1 FROM 'BEGIN';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'BEGIN' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+INSERT INTO t1 VALUES (1);
+--echo # Run 'SAVEPOINT s1' using prepared statements
+PREPARE stmt_2 FROM 'SAVEPOINT s1';
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'SAVEPOINT' statement
+--echo # were damaged.
+EXECUTE stmt_2;
+
+INSERT INTO t1 VALUES (2);
+--echo # Expected rows: '1' and '2'
+SELECT * FROM t1;
+--echo # Rollback the last row inserted ('2')
+ROLLBACK TO SAVEPOINT s1;
+--echo # Expected output from t1 after transaction has been rolled back
+--echo # to the savepoint is '1'. If it is case then the statement SAVEPOINT
+--echo # was handled successfully with prepared statement
+SELECT * FROM t1;
+
+PREPARE stmt_3 FROM 'RELEASE SAVEPOINT s1';
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'RELEASE' statement
+--echo # were damaged. The second attempt to release the same savepoint
+--echo # expectedly lead to error 'SAVEPOINT s1 does not exist'
+--echo # that's just ignored.
+--error ER_SP_DOES_NOT_EXIST
+EXECUTE stmt_3;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DROP TABLE t1;
+--enable_view_protocol
+
+--echo # Test case 8: Check that the 'PURGE BINARY LOGS BEFORE' statement
+--echo # is supported by prepared statements
+PREPARE stmt_1 FROM "PURGE BINARY LOGS BEFORE '2020-11-17'";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'PURGE BINARY LOGS BEFORE'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+--echo # Check that the 'PURGE BINARY LOGS TO' statement is supported by
+--echo # prepared statements
+PREPARE stmt_1 FROM "PURGE BINARY LOGS TO 'mariadb-bin.000063'";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'PURGE BINARY LOGS TO'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+--echo # Test case 9: Check that the 'HANDLER OPEN/HANDLER READ/
+--echo # HANDLER CLOSE' statements are supported by prepared statements
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+
+PREPARE stmt_1 FROM 'HANDLER t1 OPEN';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'HANDLER OPEN'
+--echo # statement were damaged. Execution of this statement the second
+--echo # time expectedly results in emitting the error ER_NONUNIQ_TABLE.
+--echo # The same error is issued in case the statement 'HANDLER t1 OPEN' is
+--echo # executed twice using a regular statement.
+--error ER_NONUNIQ_TABLE
+EXECUTE stmt_1;
+
+PREPARE stmt_2 FROM 'HANDLER t1 READ FIRST';
+PREPARE stmt_3 FROM 'HANDLER t1 READ NEXT';
+PREPARE stmt_4 FROM 'HANDLER t1 CLOSE';
+
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'HANDLER READ FIRST'
+--echo # statement were damaged.
+EXECUTE stmt_2;
+
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'HANDLER READ NEXT'
+--echo # statement were damaged.
+EXECUTE stmt_3;
+
+EXECUTE stmt_4;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'HANDLER CLOSE'
+--echo # statement were damaged. Execution of this statement the second
+--echo # time results in emitting the error ER_UNKNOWN_TABLE. The same error
+--echo # is issued in case the statement 'HANDLER t1 CLOSE' executed twice
+--echo # using a regular statement.
+--error ER_UNKNOWN_TABLE
+EXECUTE stmt_4;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DEALLOCATE PREPARE stmt_4;
+DROP TABLE t1;
+
+--echo # Test case 10: Check that the HELP statement
+--echo # is supported by prepared statements
+# avoid existing articles that may get updated.
+INSERT INTO mysql.help_topic VALUES (0, 'Tamagotchi', 0, 'This digital pet is not a KB article', 'no example', 'https://tamagotchi.com/');
+PREPARE stmt_1 FROM "HELP `Tamagotchi`";
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'HELP' statement
+--echo # were damaged.
+
+EXECUTE stmt_1;
+DELETE FROM mysql.help_topic WHERE help_topic_id = 0;
+
+--echo # Test case 11: Check that the 'CREATE PROCEDURE' statement
+--echo # is supported by prepared statements
+PREPARE stmt_1 FROM 'CREATE PROCEDURE p1() SET @a=1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE PROCEDURE'
+--echo # statement were damaged. Execution of this statement the second
+--echo # time expectedly results in emitting the error ER_SP_ALREADY_EXISTS.
+--echo # The same error is issued in case the 'HANDLER t1 OPEN' statement
+--echo # is executed twice using a regular statement.
+--error ER_SP_ALREADY_EXISTS
+EXECUTE stmt_1;
+
+--echo # Test case 12: Check that the 'ALTER PROCEDURE' statement is supported
+--echo # by prepared statements.
+# This test case relies on artefacts of the test case 11 (the procedure p1)
+
+PREPARE stmt_1 FROM 'ALTER PROCEDURE p1 SQL SECURITY INVOKER';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER PROCEDURE'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+--echo # Test case 13: Check that the 'DROP PROCEDURE' statement is supported
+--echo # by prepared statements.
+# This test case relies on artefacts of the test case 11 (the procedure p1)
+PREPARE stmt_1 FROM 'DROP PROCEDURE p1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'DROP PROCEDURE' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_SP_DOES_NOT_EXIST.
+
+--error ER_SP_DOES_NOT_EXIST
+EXECUTE stmt_1;
+
+--echo # Test case 14: Check that the 'CALL' statement is supported
+--echo # by prepared statements.
+
+CREATE PROCEDURE p1() SET @a=1;
+PREPARE stmt_1 FROM 'CALL p1()';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CALL' statement
+--echo # were damaged.
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP PROCEDURE p1;
+
+--echo # Test case 15: Check that the 'CREATE VIEW' statement can be executed
+--echo # as a prepared statement.
+--echo # Create environment for the test case
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+
+PREPARE stmt_1 FROM 'CREATE VIEW v1 AS SELECT * FROM t1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE VIEW'
+--echo # statement were damaged. The second execution of the prepared
+--echo # statement stmt_1 results in error ER_TABLE_EXISTS_ERROR since
+--echo # the view v1 does already exist. It is expected behaviour.
+
+--error ER_TABLE_EXISTS_ERROR
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+
+DROP VIEW v1;
+DROP TABLE t1;
+
+--echo # Test case 16: Check that the 'CREATE TRIGGER' statement can be executed
+--echo # as a prepared statement.
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a=1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE VIEW' statement
+--echo # were damaged. The second execution of the prepared statement stmt_1
+--echo # results in error ER_TRG_ALREADY_EXISTS since the trigger trg1 does
+--echo # already exist. It is expected behaviour.
+--error ER_TRG_ALREADY_EXISTS
+EXECUTE stmt_1;
+
+--echo # Test case 17: Check that the 'DROP TRIGGER' statement can be executed
+--echo # as a prepared statement.
+--echo # This test relies on presence of the trigger trg1 created by
+--echo # the test case 16.
+PREPARE stmt_1 FROM 'DROP TRIGGER trg1';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'DROP TRIGGER' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_TRG_DOES_NOT_EXIST.
+--error ER_TRG_DOES_NOT_EXIST
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DROP TABLE t1;
+
+--echo # Test case 18: Check that XA related SQL statements can be executed
+--echo # as prepared statements.
+--echo # Create the table t1 used by XA transaction.
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM "XA START 'xid1'";
+PREPARE stmt_2 FROM "XA END 'xid1'";
+PREPARE stmt_3 FROM "XA PREPARE 'xid1'";
+PREPARE stmt_4 FROM "XA RECOVER";
+PREPARE stmt_5 FROM "XA COMMIT 'xid1'";
+PREPARE stmt_6 FROM "XA ROLLBACK 'xid1'";
+
+--echo # Start a new XA transaction
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'XA START' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error XAER_RMFAIL since there is active
+--echo # XA transaction that has just been already.
+--error ER_XAER_RMFAIL
+EXECUTE stmt_1;
+
+INSERT INTO t1 VALUES (1);
+
+--echo # End the current XA transaction
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'XA END' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error XAER_RMFAIL since the XA transaction
+--echo # with XID 'xid1' has been already ended.
+--error ER_XAER_RMFAIL
+EXECUTE stmt_2;
+
+--echo # Prepare the current XA transaction for finalization
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'XA END' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error XAER_RMFAIL since the XA transaction
+--echo # with XID 'xid1' has been already ended.
+--error ER_XAER_RMFAIL
+EXECUTE stmt_3;
+
+--echo # Run XA RECOVER as a prepared statement
+EXECUTE stmt_4;
+--echo # And execute it yet another time to check that no internal structures
+--echo # used for handling the statement 'XA RECOVER' were damaged.
+EXECUTE stmt_4;
+
+--echo # Commit the current XA transaction
+EXECUTE stmt_5;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'XA COMMIT' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error XAER_NOTA since the XA transaction
+--echo # with XID 'xid1' has been finalized and no more exists.
+--error ER_XAER_NOTA
+EXECUTE stmt_5;
+
+--echo # Query the table t1 to check that it contains a record inserted by
+--echo # the XA transaction just finished.
+SELECT * FROM t1;
+
+--echo # Using prepared statements start a new XA transaction, INSERT a row
+--echo # into the table t1, prepare the XA transaction and rollback it.
+--echo # This use case is similar to precedence one except it does rollback
+--echo # XA transaction instead commit it. Therefore every prepared statement
+--echo # is executed only once except the last XA ROLLBACK.
+
+--echo # Start a new XA transaction
+EXECUTE stmt_1;
+
+INSERT INTO t1 VALUES (1);
+
+--echo # End the current XA transaction
+EXECUTE stmt_2;
+
+--echo # Prepare the current XA transaction for finalization
+EXECUTE stmt_3;
+
+--echo # Rolback the current XA transaction
+EXECUTE stmt_6;
+
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the statement 'XA ROLLBACK'
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error XAER_NOTA since the XA transaction
+--echo # with XID 'xid1' has been finalized and no more exists.
+--error ER_XAER_NOTA
+EXECUTE stmt_6;
+
+--echo # Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+DEALLOCATE PREPARE stmt_4;
+DEALLOCATE PREPARE stmt_5;
+DEALLOCATE PREPARE stmt_6;
+
+--echo # Test case 19: Check that the CREATE SERVER/ALTER SERVER/DROP SERVER
+--echo # statements can be executed as prepared statements.
+
+PREPARE stmt_1 FROM "CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'u1', HOST '127.0.0.1')";
+PREPARE stmt_2 FROM "ALTER SERVER s OPTIONS (USER 'u2')";
+PREPARE stmt_3 FROM "DROP SERVER s";
+
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE SERVER' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_FOREIGN_SERVER_EXISTS
+--echo # since a server with same has just been created.
+--error ER_FOREIGN_SERVER_EXISTS
+EXECUTE stmt_1;
+
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER SERVER' statement
+--echo # were damaged.
+EXECUTE stmt_2;
+
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'DROP SERVER' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_FOREIGN_SERVER_DOESNT_EXIST
+--echo # since the server with same has just been dropped.
+--error ER_FOREIGN_SERVER_DOESNT_EXIST
+EXECUTE stmt_3;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+
+--echo # Test case 21: Check that the SIGNAL and RESIGNAL statements
+--echo # can be executed as a prepared statement
+PREPARE stmt_1 FROM "SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT='Hello, world!'";
+--error 30001
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'SIGNAL' statement
+--echo # were damaged.
+--error 30001
+EXECUTE stmt_1;
+
+PREPARE stmt_1 FROM 'RESIGNAL SET MYSQL_ERRNO = 5';
+--error ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'RESIGNAL' statement
+--echo # were damaged.
+--error ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+
+--echo # Test case 23: Check the 'GET DIAGNOSTICS' statement
+--echo # can be executed as a prepared statement
+PREPARE stmt_1 FROM 'GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT';
+
+--echo # Query from non existent table to fill the diagnostics area
+--echo # with information
+--error ER_NO_SUCH_TABLE
+SELECT * FROM non_existent_table_1;
+EXECUTE stmt_1;
+--echo # Check that information from diagnostics area has been retrieved
+SELECT @sqlstate, @errno, @text;
+
+--error ER_NO_SUCH_TABLE
+SELECT * FROM non_existent_table_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the
+--echo # 'GET DIAGNOSTICS CONDITION' statement were damaged.
+EXECUTE stmt_1;
+
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+
+--echo # Test case 24: Check the statements 'BACKUP'/'BACKUP UNLOCK'
+--echo # can be executed as a prepared statement
+CREATE TABLE t1 (a INT);
+PREPARE stmt_1 FROM 'BACKUP LOCK t1';
+PREPARE stmt_2 FROM 'BACKUP UNLOCK';
+
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'BACKUP LOCK'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'BACKUP UNLOCK'
+--echo # statement were damaged.
+EXECUTE stmt_2;
+
+--echo # Clean up
+DROP TABLE t1;
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+
+--echo # Test Test case 25: Check the statements 'CREATE/ALTER/DROP TABLEPSPACE'
+--echo # can be executed as a prepared statement
+
+PREPARE stmt_1 FROM "CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENGINE=InnoDB";
+PREPARE stmt_2 FROM "ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_1.ibd' ENGINE=InnoDB";
+PREPARE stmt_3 FROM "DROP TABLESPACE ts1 ENGINE=InnoDB";
+
+# Since MariaDB supports for tablespaces only on syntax level disable warnings
+# before run CREATE/ALTER/DROP TABLESPACE statements in order to exclude
+# the following in result output
+# Warning 1478 Table storage engine 'InnoDB' does not support the create option 'TABLESPACE
+--disable_warnings
+
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE TABLESPACE'
+--echo # statement were damaged.
+# Since the 'CREATE TABLESPACE' statement is supported by MariaDB on syntax
+# level only the second invocation of the CREATE TABLESPACE statement for
+# the same tablespace name doesn't lead to error.
+EXECUTE stmt_1;
+
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER TABLESPACE'
+--echo # statement were damaged.
+EXECUTE stmt_2;
+
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'DROP TABLESPACE'
+--echo # statement were damaged.
+
+# Since the 'DROP TABLESPACE' statement is supported by MariaDB on syntax
+# level only the second invocation of the DROP TABLESPACE statement for
+# the same tablespace name doesn't lead to an error that tablespace
+# doesn't exist.
+EXECUTE stmt_3;
+
+--enable_warnings
+
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+
+--enable_ps_protocol
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_bin_prot.result b/mysql-test/main/ps_missed_cmds_bin_prot.result
new file mode 100644
index 00000000000..0d75d2b84fc
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_bin_prot.result
@@ -0,0 +1,227 @@
+#
+# MDEV-16708: Unsupported commands for prepared statements
+#
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+# Test case 1: Check that the statement 'LOAD DATA' is supported
+# by prepared statements
+# First, set up environment for use by the statement 'LOAD DATA'
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+SELECT * INTO OUTFILE 'load.data' FROM t1;
+LOAD DATA INFILE 'load.data' INTO TABLE t1;
+SELECT * FROM t1;
+a
+1
+1
+# Clean up
+DROP TABLE t1;
+# Test case 2: Check that the statements 'LOCK TABLE', 'UNLOCK TABLES'
+# are supported by prepared statements
+CREATE TABLE t1 (a INT);
+LOCK TABLE t1 READ;
+UNLOCK TABLE;
+LOCK TABLE t1 WRITE;
+# Clean up
+UNLOCK TABLE;
+DROP TABLE t1;
+# Test case 3: Check that the statement 'USE' is supported by
+# prepared statements
+CREATE DATABASE mdev_16708_db;
+USE mdev_16708_db;
+# Check that the current database has been changed
+SELECT DATABASE();
+DATABASE()
+mdev_16708_db
+# Clean up
+USE test;
+DROP DATABASE mdev_16708_db;
+# Test case 4: Check that the statement 'ALTER DATABASE' is supported
+# by prepared statements
+CREATE DATABASE mdev_16708_db;
+ALTER DATABASE mdev_16708_db COMMENT 'New comment on database';
+# Clean up
+DROP DATABASE mdev_16708_db;
+# Test case 5: Check that the statements 'CREATE FUNCTION/ALTER FUNCTION/
+# DROP FUNCTION' are supported by prepared statements
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+ALTER FUNCTION f1 SQL SECURITY INVOKER;
+DROP FUNCTION f1;
+# Test case 6: Check that the statements 'CHECK TABLE' is supported
+# by prepared statements
+CREATE TABLE t1 (a INT);
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+# Clean up
+DROP TABLE t1;
+# Test case 7: Check that the statements BEGIN/SAVEPOINT/
+# RELEASE SAVEPOINT is supported by prepared statements
+# Set up environmentr for the test case
+CREATE TABLE t1 (a INT);
+BEGIN;
+INSERT INTO t1 VALUES (1);
+SAVEPOINT s1;
+INSERT INTO t1 VALUES (2);
+# Expected rows: '1' and '2'
+SELECT * FROM t1;
+a
+1
+2
+# Rollback the last row inserted ('2')
+ROLLBACK TO SAVEPOINT s1;
+# Expected output from t1 after transaction was rolled back
+# to the savepoint is '1'. If it is case then the statement SAVEPOINT
+# was handled successfully with prepared statement
+SELECT * FROM t1;
+a
+1
+RELEASE SAVEPOINT s1;
+# Clean up
+DROP TABLE t1;
+# Test case 8: Check that the statements 'PURGE BINARY LOGS BEFORE'
+# is supported by prepared statements
+PURGE BINARY LOGS BEFORE '2020-11-17';
+# Check that the statements 'PURGE BINARY LOGS TO' is supported by
+# prepared statements
+PURGE BINARY LOGS TO 'mariadb-bin.000063';
+# Test case 9: Check that the statements 'HANDLER OPEN/HANDLER READ/
+# HANDLER CLOSE' are supported by prepared statements
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+HANDLER t1 OPEN;
+HANDLER t1 READ FIRST;
+a
+1
+HANDLER t1 READ NEXT;
+a
+1
+HANDLER t1 CLOSE;
+# Clean up
+DROP TABLE t1;
+# Test case 10: Check that the statements 'HELP'
+# is supported by prepared statements
+INSERT INTO mysql.help_topic VALUES (0, 'Tamagotchi', 0, 'This digital pet is not a KB article', 'no example', 'https://tamagotchi.com/');
+HELP `Tamagotchi`;
+name description example
+Tamagotchi This digital pet is not a KB article no example
+DELETE FROM mysql.help_topic WHERE help_topic_id = 0;
+# Test case 11: Check that the statements CREATE/ALTER/DROP PROCEDURE
+# are supported by prepared statements
+CREATE PROCEDURE p1() SET @a=1;
+ALTER PROCEDURE p1 SQL SECURITY INVOKER;
+DROP PROCEDURE p1;
+# Test case 12: Check that the statement 'CALL' is supported
+# by prepared statements.
+CREATE PROCEDURE p1() SET @a=1;
+CALL p1();
+# Check that the @a variable has been set
+SELECT @a;
+@a
+1
+DROP PROCEDURE p1;
+# Test case 13: Check that the statements PREPARE FROM/EXECUTE/
+# DEALLOCAT PREPARE can be executed as prepared statements.
+PREPARE stmt_1 FROM 'SELECT 1';
+# Now execute the prepared statement with the name stmt_1
+# It is expected that output contains the single row '1'
+EXECUTE stmt_1;
+1
+1
+DEALLOCATE PREPARE stmt_1;
+# Test case 14: Check that the statement 'CREATE VIEW' can be executed
+# as a prepared statement.
+# Create environment for the test case
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+CREATE VIEW v1 AS SELECT * FROM t1;
+# Query the view. Expected result is the row '1'
+SELECT * FROM v1;
+a
+1
+# Clean up
+DROP VIEW v1;
+DROP TABLE t1;
+# Test case 15: Check that the statements CREATE/DROP TRIGGER can be executed
+# as prepared statements.
+CREATE TABLE t1 (a INT);
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a=1;
+DROP TRIGGER trg1;
+DROP TABLE t1;
+# Test case 16: Check that XA related SQL statements can be executed in
+# as prepared statements.
+# Create the table t1 used by XA transaction.
+CREATE TABLE t1 (a INT);
+XA START 'xid1';
+INSERT INTO t1 VALUES (1);
+XA END 'xid1';
+XA PREPARE 'xid1';
+XA RECOVER;
+formatID gtrid_length bqual_length data
+1 4 0 xid1
+XA COMMIT 'xid1';
+# Query the table t1 to check that it contains a record inserted by XA
+# transaction just committed.
+SELECT * FROM t1;
+a
+1
+# Check that XA ROLLBACK is supported by prepared statements
+# First, clean up the table t1 that was filled by just
+# committed XA transaction
+TRUNCATE TABLE t1;
+XA START 'xid1';
+INSERT INTO t1 VALUES (1);
+XA END 'xid1';
+XA PREPARE 'xid1';
+XA RECOVER;
+formatID gtrid_length bqual_length data
+1 4 0 xid1
+XA ROLLBACK 'xid1';
+# Query the table t1 to check that it doesn't contain a record
+# inserted by XA transaction just rollbacked.
+SELECT * FROM t1;
+a
+# Clean up
+DROP TABLE t1;
+# Test case 17: Check that the statements CREATE SERVER/ALTER SERVER/
+# DROP SERVER can be executed
+# as a prepared statement.
+CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'u1', HOST '127.0.0.1');
+ALTER SERVER s OPTIONS (USER 'u2');
+DROP SERVER s;
+# Test Test case 21: Check the statements 'BACKUP'/'BACKUP STAGE'
+# can be executed as a prepared statement
+CREATE TABLE t1 (a INT);
+BACKUP LOCK t1;
+BACKUP UNLOCK;
+BACKUP STAGE START;
+BACKUP STAGE BLOCK_COMMIT;
+BACKUP STAGE END;
+DROP TABLE t1;
+# Test case 22: Check the the statement 'GET DIAGNOSTICS'
+# can be executed as a prepared statement
+# Query from non existent table to fill the diagnostics area with information
+SELECT * FROM non_existent_table_1;
+ERROR 42S02: Table 'test.non_existent_table_1' doesn't exist
+GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
+# Check that information from diagnostics area has been retrieved
+SELECT @sqlstate, @errno, @text;
+@sqlstate @errno @text
+42S02 1146 Table 'test.non_existent_table_1' doesn't exist
+# Clean up
+# Test case 23: Check that the statements SIGNAL and RESIGNAL can be executed as
+# a prepared statement
+SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT='Hello, world!';
+ERROR 45000: Hello, world!
+RESIGNAL SET MESSAGE_TEXT = 'New error message';
+ERROR 0K000: RESIGNAL when handler not active
+# Test Test case 29: Check the statements 'CREATE/ALTER/DROP TABLEPSPACE'
+# can be executed as a prepared statement
+CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENGINE=InnoDB;
+ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_1.ibd' ENGINE=InnoDB;
+DROP TABLESPACE ts1 ENGINE=InnoDB;
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_bin_prot.test b/mysql-test/main/ps_missed_cmds_bin_prot.test
new file mode 100644
index 00000000000..47f9e5b8e0f
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_bin_prot.test
@@ -0,0 +1,272 @@
+--echo #
+--echo # MDEV-16708: Unsupported commands for prepared statements
+--echo #
+
+if (`SELECT $PS_PROTOCOL = 0`)
+{
+ --skip Need ps-protocol
+}
+
+--source include/have_innodb.inc
+
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+
+--echo # Test case 1: Check that the statement 'LOAD DATA' is supported
+--echo # by prepared statements
+
+--echo # First, set up environment for use by the statement 'LOAD DATA'
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+SELECT * INTO OUTFILE 'load.data' FROM t1;
+
+LOAD DATA INFILE 'load.data' INTO TABLE t1;
+SELECT * FROM t1;
+--echo # Clean up
+DROP TABLE t1;
+--let $datadir= `select @@datadir`
+--remove_file $datadir/test/load.data
+
+--echo # Test case 2: Check that the statements 'LOCK TABLE', 'UNLOCK TABLES'
+--echo # are supported by prepared statements
+CREATE TABLE t1 (a INT);
+
+LOCK TABLE t1 READ;
+UNLOCK TABLE;
+
+LOCK TABLE t1 WRITE;
+--echo # Clean up
+UNLOCK TABLE;
+DROP TABLE t1;
+
+--echo # Test case 3: Check that the statement 'USE' is supported by
+--echo # prepared statements
+
+CREATE DATABASE mdev_16708_db;
+USE mdev_16708_db;
+
+--echo # Check that the current database has been changed
+SELECT DATABASE();
+
+--echo # Clean up
+USE test;
+DROP DATABASE mdev_16708_db;
+
+--echo # Test case 4: Check that the statement 'ALTER DATABASE' is supported
+--echo # by prepared statements
+CREATE DATABASE mdev_16708_db;
+ALTER DATABASE mdev_16708_db COMMENT 'New comment on database';
+
+--echo # Clean up
+DROP DATABASE mdev_16708_db;
+
+--echo # Test case 5: Check that the statements 'CREATE FUNCTION/ALTER FUNCTION/
+--echo # DROP FUNCTION' are supported by prepared statements
+CREATE FUNCTION f1() RETURNS INT RETURN 1;
+
+ALTER FUNCTION f1 SQL SECURITY INVOKER;
+
+DROP FUNCTION f1;
+
+--echo # Test case 6: Check that the statements 'CHECK TABLE' is supported
+--echo # by prepared statements
+CREATE TABLE t1 (a INT);
+CHECK TABLE t1;
+--echo # Clean up
+DROP TABLE t1;
+
+--echo # Test case 7: Check that the statements BEGIN/SAVEPOINT/
+--echo # RELEASE SAVEPOINT is supported by prepared statements
+
+--echo # Set up environmentr for the test case
+CREATE TABLE t1 (a INT);
+
+BEGIN;
+
+INSERT INTO t1 VALUES (1);
+
+SAVEPOINT s1;
+
+INSERT INTO t1 VALUES (2);
+--echo # Expected rows: '1' and '2'
+SELECT * FROM t1;
+--echo # Rollback the last row inserted ('2')
+ROLLBACK TO SAVEPOINT s1;
+--echo # Expected output from t1 after transaction was rolled back
+--echo # to the savepoint is '1'. If it is case then the statement SAVEPOINT
+--echo # was handled successfully with prepared statement
+SELECT * FROM t1;
+
+RELEASE SAVEPOINT s1;
+
+--echo # Clean up
+DROP TABLE t1;
+
+--echo # Test case 8: Check that the statements 'PURGE BINARY LOGS BEFORE'
+--echo # is supported by prepared statements
+PURGE BINARY LOGS BEFORE '2020-11-17';
+
+--echo # Check that the statements 'PURGE BINARY LOGS TO' is supported by
+--echo # prepared statements
+PURGE BINARY LOGS TO 'mariadb-bin.000063';
+
+--echo # Test case 9: Check that the statements 'HANDLER OPEN/HANDLER READ/
+--echo # HANDLER CLOSE' are supported by prepared statements
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+
+HANDLER t1 OPEN;
+HANDLER t1 READ FIRST;
+HANDLER t1 READ NEXT;
+HANDLER t1 CLOSE;
+
+--echo # Clean up
+DROP TABLE t1;
+
+--echo # Test case 10: Check that the statements 'HELP'
+--echo # is supported by prepared statements
+# avoid existing articles that may get updated.
+INSERT INTO mysql.help_topic VALUES (0, 'Tamagotchi', 0, 'This digital pet is not a KB article', 'no example', 'https://tamagotchi.com/');
+HELP `Tamagotchi`;
+DELETE FROM mysql.help_topic WHERE help_topic_id = 0;
+
+--echo # Test case 11: Check that the statements CREATE/ALTER/DROP PROCEDURE
+--echo # are supported by prepared statements
+CREATE PROCEDURE p1() SET @a=1;
+ALTER PROCEDURE p1 SQL SECURITY INVOKER;
+DROP PROCEDURE p1;
+
+--echo # Test case 12: Check that the statement 'CALL' is supported
+--echo # by prepared statements.
+
+CREATE PROCEDURE p1() SET @a=1;
+CALL p1();
+
+--echo # Check that the @a variable has been set
+SELECT @a;
+DROP PROCEDURE p1;
+
+--echo # Test case 13: Check that the statements PREPARE FROM/EXECUTE/
+--echo # DEALLOCAT PREPARE can be executed as prepared statements.
+PREPARE stmt_1 FROM 'SELECT 1';
+
+--echo # Now execute the prepared statement with the name stmt_1
+--echo # It is expected that output contains the single row '1'
+EXECUTE stmt_1;
+
+DEALLOCATE PREPARE stmt_1;
+
+--echo # Test case 14: Check that the statement 'CREATE VIEW' can be executed
+--echo # as a prepared statement.
+--echo # Create environment for the test case
+CREATE TABLE t1 (a INT);
+INSERT INTO t1 VALUES (1);
+COMMIT;
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+--echo # Query the view. Expected result is the row '1'
+SELECT * FROM v1;
+--echo # Clean up
+DROP VIEW v1;
+DROP TABLE t1;
+
+--echo # Test case 15: Check that the statements CREATE/DROP TRIGGER can be executed
+--echo # as prepared statements.
+CREATE TABLE t1 (a INT);
+CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a=1;
+
+DROP TRIGGER trg1;
+DROP TABLE t1;
+
+--echo # Test case 16: Check that XA related SQL statements can be executed in
+--echo # as prepared statements.
+--echo # Create the table t1 used by XA transaction.
+CREATE TABLE t1 (a INT);
+XA START 'xid1';
+INSERT INTO t1 VALUES (1);
+XA END 'xid1';
+XA PREPARE 'xid1';
+XA RECOVER;
+XA COMMIT 'xid1';
+--echo # Query the table t1 to check that it contains a record inserted by XA
+--echo # transaction just committed.
+SELECT * FROM t1;
+
+--echo # Check that XA ROLLBACK is supported by prepared statements
+
+--echo # First, clean up the table t1 that was filled by just
+--echo # committed XA transaction
+TRUNCATE TABLE t1;
+XA START 'xid1';
+INSERT INTO t1 VALUES (1);
+XA END 'xid1';
+XA PREPARE 'xid1';
+XA RECOVER;
+XA ROLLBACK 'xid1';
+
+--echo # Query the table t1 to check that it doesn't contain a record
+--echo # inserted by XA transaction just rollbacked.
+SELECT * FROM t1;
+
+--echo # Clean up
+DROP TABLE t1;
+
+--echo # Test case 17: Check that the statements CREATE SERVER/ALTER SERVER/
+--echo # DROP SERVER can be executed
+--echo # as a prepared statement.
+
+CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'u1', HOST '127.0.0.1');
+ALTER SERVER s OPTIONS (USER 'u2');
+DROP SERVER s;
+
+--echo # Test Test case 21: Check the statements 'BACKUP'/'BACKUP STAGE'
+--echo # can be executed as a prepared statement
+CREATE TABLE t1 (a INT);
+BACKUP LOCK t1;
+BACKUP UNLOCK;
+
+BACKUP STAGE START;
+BACKUP STAGE BLOCK_COMMIT;
+BACKUP STAGE END;
+
+DROP TABLE t1;
+
+--echo # Test case 22: Check the the statement 'GET DIAGNOSTICS'
+--echo # can be executed as a prepared statement
+
+--echo # Query from non existent table to fill the diagnostics area with information
+--error ER_NO_SUCH_TABLE
+SELECT * FROM non_existent_table_1;
+GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
+--echo # Check that information from diagnostics area has been retrieved
+SELECT @sqlstate, @errno, @text;
+--echo # Clean up
+
+--echo # Test case 23: Check that the statements SIGNAL and RESIGNAL can be executed as
+--echo # a prepared statement
+
+--error 30001
+SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT='Hello, world!';
+
+--error ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER
+RESIGNAL SET MESSAGE_TEXT = 'New error message';
+
+--echo # Test Test case 29: Check the statements 'CREATE/ALTER/DROP TABLEPSPACE'
+--echo # can be executed as a prepared statement
+
+# Since MariaDB supports for tablespaces only on syntax level disable warnings
+# before run CREATE/ALTER/DROP TABLESPACE statements in order to exclude
+# the following in result output
+# Warning 1478 Table storage engine 'InnoDB' does not support the create option 'TABLESPACE
+--disable_warnings
+
+CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENGINE=InnoDB;
+ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_1.ibd' ENGINE=InnoDB;
+DROP TABLESPACE ts1 ENGINE=InnoDB;
+
+--enable_warnings
+
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.result b/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.result
new file mode 100644
index 00000000000..0e36165db33
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.result
@@ -0,0 +1,21 @@
+#
+# MDEV-16708: Unsupported commands for prepared statements
+#
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+# Test case 18: Check that the statements CREATE EVENT/ALTER EVENT/
+# DROP EVENT can be executed as a prepared statement
+# Create the event e1 that specifies time in past. Such event is created
+# just for the sake of its existence and never will be triggered.
+# Disable warnings temprorary in order to hide the following warnings
+# generated in result of execution the 'CREATE EVENT' statement:
+# "1544 | Event execution time is in the past. Event has been disabled"
+# "1105 | Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it."
+CREATE EVENT e1 ON SCHEDULE AT CURRENT_TIMESTAMP - INTERVAL 1 DAY ON COMPLETION PRESERVE DO SET @a=1;
+ALTER EVENT e1 COMMENT 'New comment';
+DROP EVENT IF EXISTS e1;
+# Test case 19: Check that the statement 'SHOW RELAYLOG EVENTS' can be
+# executed as a prepared statement.
+SHOW RELAYLOG EVENTS;
+Log_name Pos Event_type Server_id End_log_pos Info
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.test b/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.test
new file mode 100644
index 00000000000..6d87441a476
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_bin_prot_not_embedded.test
@@ -0,0 +1,40 @@
+source include/not_embedded.inc;
+--echo #
+--echo # MDEV-16708: Unsupported commands for prepared statements
+--echo #
+
+if (`SELECT $PS_PROTOCOL = 0`)
+{
+ --skip Need ps-protocol
+}
+
+--source include/have_innodb.inc
+
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+
+--echo # Test case 18: Check that the statements CREATE EVENT/ALTER EVENT/
+--echo # DROP EVENT can be executed as a prepared statement
+
+--echo # Create the event e1 that specifies time in past. Such event is created
+--echo # just for the sake of its existence and never will be triggered.
+--echo # Disable warnings temprorary in order to hide the following warnings
+--echo # generated in result of execution the 'CREATE EVENT' statement:
+--echo # "1544 | Event execution time is in the past. Event has been disabled"
+--echo # "1105 | Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it."
+
+--disable_warnings
+
+CREATE EVENT e1 ON SCHEDULE AT CURRENT_TIMESTAMP - INTERVAL 1 DAY ON COMPLETION PRESERVE DO SET @a=1;
+
+ALTER EVENT e1 COMMENT 'New comment';
+
+DROP EVENT IF EXISTS e1;
+
+--enable_warnings
+
+--echo # Test case 19: Check that the statement 'SHOW RELAYLOG EVENTS' can be
+--echo # executed as a prepared statement.
+SHOW RELAYLOG EVENTS;
+
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_not_embedded.result b/mysql-test/main/ps_missed_cmds_not_embedded.result
new file mode 100644
index 00000000000..959a78b5591
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_not_embedded.result
@@ -0,0 +1,61 @@
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+#
+# MDEV-16708: Unsupported commands for prepared statements
+#
+# Disable ps-protocol explicitly in order to test support of
+# prepared statements for use case when statements passed
+# to the server via text client-server protocol (in contrast
+# with binary protocol used in the test file
+# ps_missed_cmds_bin_prot.test)
+# Test case 20: Check that the CREATE EVENT/ALTER EVENT/DROP EVENT
+# statements can be executed as a prepared statement
+PREPARE stmt_1 FROM "CREATE EVENT e1 ON SCHEDULE AT CURRENT_TIMESTAMP - INTERVAL 1 DAY ON COMPLETION PRESERVE DO SET @a=1";
+PREPARE stmt_2 FROM "ALTER EVENT e1 COMMENT 'New comment'";
+PREPARE stmt_3 FROM "DROP EVENT e1";
+# Create the event e1 that specifies time in past. Such event is created
+# just for the sake of its existence and never will be triggered.
+# Disable warnings temprorary in order to hide the following warnings
+# generated in result of execution the 'CREATE EVENT' statement:
+# "1544 | Event execution time is in the past. Event has been disabled"
+# "1105 | Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it."
+EXECUTE stmt_1;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'CREATE EVENT' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_EVENT_ALREADY_EXISTS since the event
+# with the same name has just been created.
+EXECUTE stmt_1;
+ERROR HY000: Event 'e1' already exists
+# Alter event e1
+EXECUTE stmt_2;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'ALTER EVENT' statement
+# were damaged.
+EXECUTE stmt_2;
+# Drop event e1
+EXECUTE stmt_3;
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'DROP EVENT' statement
+# were damaged. Execution of this statement the second time expectedly
+# results in emitting the error ER_EVENT_DOESNT_EXIST since the event
+# with the same name has just been dropped.
+EXECUTE stmt_3;
+ERROR HY000: Unknown event 'e1'
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+# Test case 22: Check that the 'SHOW RELAYLOG EVENTS' statement can be
+# executed as a prepared statement.
+PREPARE stmt_1 FROM 'SHOW RELAYLOG EVENTS';
+EXECUTE stmt_1;
+Log_name Pos Event_type Server_id End_log_pos Info
+# Execute the same prepared statement the second time to check that
+# no internal structures used for handling the 'SHOW RELAYLOG EVENTS'
+# statement were damaged.
+EXECUTE stmt_1;
+Log_name Pos Event_type Server_id End_log_pos Info
+# Clean up
+DEALLOCATE PREPARE stmt_1;
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/ps_missed_cmds_not_embedded.test b/mysql-test/main/ps_missed_cmds_not_embedded.test
new file mode 100644
index 00000000000..2e7eebedf91
--- /dev/null
+++ b/mysql-test/main/ps_missed_cmds_not_embedded.test
@@ -0,0 +1,85 @@
+--source include/not_embedded.inc
+--source include/have_innodb.inc
+
+if (`SELECT $PS_PROTOCOL != 0`)
+{
+ --skip Need regular protocol but ps-protocol was specified
+}
+
+SET @save_storage_engine= @@default_storage_engine;
+SET default_storage_engine= InnoDB;
+
+--echo #
+--echo # MDEV-16708: Unsupported commands for prepared statements
+--echo #
+
+--echo # Disable ps-protocol explicitly in order to test support of
+--echo # prepared statements for use case when statements passed
+--echo # to the server via text client-server protocol (in contrast
+--echo # with binary protocol used in the test file
+--echo # ps_missed_cmds_bin_prot.test)
+--disable_ps_protocol
+
+--echo # Test case 20: Check that the CREATE EVENT/ALTER EVENT/DROP EVENT
+--echo # statements can be executed as a prepared statement
+
+PREPARE stmt_1 FROM "CREATE EVENT e1 ON SCHEDULE AT CURRENT_TIMESTAMP - INTERVAL 1 DAY ON COMPLETION PRESERVE DO SET @a=1";
+
+PREPARE stmt_2 FROM "ALTER EVENT e1 COMMENT 'New comment'";
+
+PREPARE stmt_3 FROM "DROP EVENT e1";
+--echo # Create the event e1 that specifies time in past. Such event is created
+--echo # just for the sake of its existence and never will be triggered.
+--echo # Disable warnings temprorary in order to hide the following warnings
+--echo # generated in result of execution the 'CREATE EVENT' statement:
+--echo # "1544 | Event execution time is in the past. Event has been disabled"
+--echo # "1105 | Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it."
+
+--disable_warnings
+EXECUTE stmt_1;
+
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'CREATE EVENT' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_EVENT_ALREADY_EXISTS since the event
+--echo # with the same name has just been created.
+--error ER_EVENT_ALREADY_EXISTS
+EXECUTE stmt_1;
+
+--enable_warnings
+
+--echo # Alter event e1
+EXECUTE stmt_2;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'ALTER EVENT' statement
+--echo # were damaged.
+EXECUTE stmt_2;
+
+--echo # Drop event e1
+EXECUTE stmt_3;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'DROP EVENT' statement
+--echo # were damaged. Execution of this statement the second time expectedly
+--echo # results in emitting the error ER_EVENT_DOESNT_EXIST since the event
+--echo # with the same name has just been dropped.
+--error ER_EVENT_DOES_NOT_EXIST
+EXECUTE stmt_3;
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+DEALLOCATE PREPARE stmt_2;
+DEALLOCATE PREPARE stmt_3;
+
+--echo # Test case 22: Check that the 'SHOW RELAYLOG EVENTS' statement can be
+--echo # executed as a prepared statement.
+PREPARE stmt_1 FROM 'SHOW RELAYLOG EVENTS';
+EXECUTE stmt_1;
+--echo # Execute the same prepared statement the second time to check that
+--echo # no internal structures used for handling the 'SHOW RELAYLOG EVENTS'
+--echo # statement were damaged.
+EXECUTE stmt_1;
+--echo # Clean up
+DEALLOCATE PREPARE stmt_1;
+
+--enable_warnings
+--enable_ps_protocol
+SET default_storage_engine= @save_storage_engine;
diff --git a/mysql-test/main/query_cache.result b/mysql-test/main/query_cache.result
index bff04de6520..3a81b648171 100644
--- a/mysql-test/main/query_cache.result
+++ b/mysql-test/main/query_cache.result
@@ -1098,7 +1098,7 @@ call p1()//
a
1
2
-drop procedure p1;
+drop procedure p1//
create function f1() returns int
begin
Declare var1 int;
@@ -1111,13 +1111,13 @@ create procedure `p1`()
begin
select a, f1() from t1;
end//
-SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
-SET GLOBAL log_bin_trust_function_creators = 1;
+SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators//
+SET GLOBAL log_bin_trust_function_creators = 1//
call p1()//
a f1()
1 2
2 2
-SET GLOBAL log_bin_trust_function_creators = @old_log_bin_trust_function_creators;
+SET GLOBAL log_bin_trust_function_creators = @old_log_bin_trust_function_creators//
drop procedure p1//
drop function f1//
drop table t1//
@@ -2210,7 +2210,32 @@ drop table t1;
#
# MDEV-24858 SIGABRT in DbugExit from my_malloc in Query_cache::init_cache Regression
#
+SET @qc= @@query_cache_size;
set global Query_cache_size=18446744073709547520;
+SET GLOBAL query_cache_size= @qc;
+#
+# MDEV-22301 JSON_TABLE: Queries are not inserted into query cache.
+#
+create table t1 (a text);
+insert into t1 values ('{"a":"foo"}');
+flush status;
+SHOW STATUS LIKE 'Qcache_inserts';
+Variable_name Value
+Qcache_inserts 0
+select * from t1, json_table(t1.a, '$' columns (f varchar(20) path '$.a')) as jt;
+a f
+{"a":"foo"} foo
+SHOW STATUS LIKE 'Qcache_inserts';
+Variable_name Value
+Qcache_inserts 1
+drop table t1;
+#
+# MDEV-25228 JSON_TABLE: Server crashes in Query_cache::unlink_table.
+#
+CREATE TABLE t (a INT);
+SELECT * FROM t JOIN JSON_TABLE('{}' , '$' COLUMNS(b FOR ORDINALITY)) AS jt;
+a b
+DROP TABLE t;
restore defaults
SET GLOBAL query_cache_type= default;
SET GLOBAL query_cache_size=@save_query_cache_size;
diff --git a/mysql-test/main/query_cache.test b/mysql-test/main/query_cache.test
index 60010eba278..f3c8093d41b 100644
--- a/mysql-test/main/query_cache.test
+++ b/mysql-test/main/query_cache.test
@@ -434,10 +434,12 @@ drop table t1;
create table t1 (a int);
insert into t1 values (1),(2),(3);
show status like "Qcache_queries_in_cache";
+--enable_prepare_warnings
select * from t1 into outfile "query_cache.out.file";
--error ER_FILE_EXISTS_ERROR
select * from t1 into outfile "query_cache.out.file";
select * from t1 limit 1 into dumpfile "query_cache.dump.file";
+--disable_prepare_warnings
show status like "Qcache_queries_in_cache";
drop table t1;
let $datadir=`select @@datadir`;
@@ -812,22 +814,24 @@ open c1;
select * from t1;
end//
call p1()//
-drop procedure p1;
+drop procedure p1//
+--enable_prepare_warnings
create function f1() returns int
begin
Declare var1 int;
select max(a) from t1 into var1;
return var1;
end//
+--disable_prepare_warnings
create procedure `p1`()
begin
select a, f1() from t1;
end//
-SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
-SET GLOBAL log_bin_trust_function_creators = 1;
+SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators//
+SET GLOBAL log_bin_trust_function_creators = 1//
call p1()//
-SET GLOBAL log_bin_trust_function_creators = @old_log_bin_trust_function_creators;
+SET GLOBAL log_bin_trust_function_creators = @old_log_bin_trust_function_creators//
drop procedure p1//
drop function f1//
@@ -1806,9 +1810,29 @@ drop table t1;
--echo # MDEV-24858 SIGABRT in DbugExit from my_malloc in Query_cache::init_cache Regression
--echo #
--disable_warnings
+SET @qc= @@query_cache_size;
set global Query_cache_size=18446744073709547520;
+SET GLOBAL query_cache_size= @qc;
--enable_warnings
+--echo #
+--echo # MDEV-22301 JSON_TABLE: Queries are not inserted into query cache.
+--echo #
+create table t1 (a text);
+insert into t1 values ('{"a":"foo"}');
+flush status;
+SHOW STATUS LIKE 'Qcache_inserts';
+select * from t1, json_table(t1.a, '$' columns (f varchar(20) path '$.a')) as jt;
+SHOW STATUS LIKE 'Qcache_inserts';
+drop table t1;
+
+--echo #
+--echo # MDEV-25228 JSON_TABLE: Server crashes in Query_cache::unlink_table.
+--echo #
+CREATE TABLE t (a INT);
+SELECT * FROM t JOIN JSON_TABLE('{}' , '$' COLUMNS(b FOR ORDINALITY)) AS jt;
+DROP TABLE t;
+
--echo restore defaults
SET GLOBAL query_cache_type= default;
SET GLOBAL query_cache_size=@save_query_cache_size;
diff --git a/mysql-test/main/query_cache_ps_no_prot.result b/mysql-test/main/query_cache_ps_no_prot.result
index ef1f92b597d..94986da49f0 100644
--- a/mysql-test/main/query_cache_ps_no_prot.result
+++ b/mysql-test/main/query_cache_ps_no_prot.result
@@ -408,9 +408,9 @@ EXECUTE stmt_a_2;
SELECT * FROM mysqltest1.t1;
msg
mysqltest1
-utf8_unicode_ci
+utf8mb3_unicode_ci
mysqltest1
-utf8_unicode_ci
+utf8mb3_unicode_ci
SELECT * FROM mysqltest2.t1;
msg
@@ -484,7 +484,7 @@ NULL latin1_swedish_ci
EXECUTE stmt_c_1;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
@@ -516,7 +516,7 @@ Note 1049 Unknown database 'mysqltest2'
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
EXECUTE stmt_c_3;
DATABASE() @@collation_database
@@ -524,7 +524,7 @@ NULL latin1_swedish_ci
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
DROP DATABASE mysqltest1;
diff --git a/mysql-test/main/query_cache_ps_no_prot.test b/mysql-test/main/query_cache_ps_no_prot.test
index 61388b0f97a..d5d77927f8f 100644
--- a/mysql-test/main/query_cache_ps_no_prot.test
+++ b/mysql-test/main/query_cache_ps_no_prot.test
@@ -14,7 +14,7 @@
--source include/have_query_cache.inc
--source include/default_charset.inc
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
# The file with expected results fits only to a run without
diff --git a/mysql-test/main/query_cache_ps_ps_prot.result b/mysql-test/main/query_cache_ps_ps_prot.result
index e3f2da1dbbe..16cad15450e 100644
--- a/mysql-test/main/query_cache_ps_ps_prot.result
+++ b/mysql-test/main/query_cache_ps_ps_prot.result
@@ -408,9 +408,9 @@ EXECUTE stmt_a_2;
SELECT * FROM mysqltest1.t1;
msg
mysqltest1
-utf8_unicode_ci
+utf8mb3_unicode_ci
mysqltest1
-utf8_unicode_ci
+utf8mb3_unicode_ci
SELECT * FROM mysqltest2.t1;
msg
@@ -484,7 +484,7 @@ NULL latin1_swedish_ci
EXECUTE stmt_c_1;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
@@ -516,7 +516,7 @@ Note 1049 Unknown database 'mysqltest2'
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
EXECUTE stmt_c_3;
DATABASE() @@collation_database
@@ -524,7 +524,7 @@ NULL latin1_swedish_ci
SELECT DATABASE(), @@collation_database;
DATABASE() @@collation_database
-mysqltest1 utf8_unicode_ci
+mysqltest1 utf8mb3_unicode_ci
DROP DATABASE mysqltest1;
diff --git a/mysql-test/main/query_cache_ps_ps_prot.test b/mysql-test/main/query_cache_ps_ps_prot.test
index d431ce349d2..5f6d43f36e9 100644
--- a/mysql-test/main/query_cache_ps_ps_prot.test
+++ b/mysql-test/main/query_cache_ps_ps_prot.test
@@ -12,7 +12,7 @@
# We cannot run on embedded server because we use multiple sessions.
--source include/not_embedded.inc
--source include/have_query_cache.inc
-let collation=utf8_unicode_ci;
+let collation=utf8mb3_unicode_ci;
--source include/have_collation.inc
# The file with expected results fits only to a run with "--ps-protocol".
diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test
index ba6f2942a9b..c42670c1ed1 100644
--- a/mysql-test/main/range.test
+++ b/mysql-test/main/range.test
@@ -1672,6 +1672,8 @@ INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
+#check after fix MDEV-29601
+--disable_service_connection
--echo # The following should show "Impossible WHERE" :
explain
SELECT * FROM t1 WHERE fd='ðŸ˜';
@@ -1682,6 +1684,7 @@ SELECT * FROM t1 WHERE fd='ðŸ˜';
explain select count(*) from t1 where fd <'ðŸ˜';
select count(*) from t1 where fd <'ðŸ˜';
select count(*) from t1 ignore index (ix_fd) where fd <'ðŸ˜';
+--enable_service_connection
drop table t1;
set names default;
diff --git a/mysql-test/main/range_innodb.result b/mysql-test/main/range_innodb.result
index e7792fec0ff..eddfbfd0d62 100644
--- a/mysql-test/main/range_innodb.result
+++ b/mysql-test/main/range_innodb.result
@@ -40,13 +40,13 @@ drop table t0,t2;
create table t1 (
pk int, a int, b int,
primary key (pk), index idx1(b), index idx2(b)
-) engine=innodb;
+) engine=innodb STATS_AUTO_RECALC=0;
Warnings:
Note 1831 Duplicate index `idx2`. This is deprecated and will be disallowed in a future release
insert into t1 values (1,6,0),(2,1,0),(3,5,2),(4,8,0);
-create table t2 (c int) engine=innodb;
+create table t2 (c int) engine=innodb STATS_AUTO_RECALC=0;
insert into t2 values (1),(2);
-create table t3 (d int) engine=innodb;
+create table t3 (d int) engine=innodb STATS_AUTO_RECALC=0;
insert into t3 values (3),(-1),(4);
set @save_optimizer_switch=@@optimizer_switch;
set optimizer_switch='extended_keys=on';
diff --git a/mysql-test/main/range_innodb.test b/mysql-test/main/range_innodb.test
index cf342c90bb8..276b9cea08f 100644
--- a/mysql-test/main/range_innodb.test
+++ b/mysql-test/main/range_innodb.test
@@ -48,11 +48,11 @@ drop table t0,t2;
create table t1 (
pk int, a int, b int,
primary key (pk), index idx1(b), index idx2(b)
-) engine=innodb;
+) engine=innodb STATS_AUTO_RECALC=0;
insert into t1 values (1,6,0),(2,1,0),(3,5,2),(4,8,0);
-create table t2 (c int) engine=innodb;
+create table t2 (c int) engine=innodb STATS_AUTO_RECALC=0;
insert into t2 values (1),(2);
-create table t3 (d int) engine=innodb;
+create table t3 (d int) engine=innodb STATS_AUTO_RECALC=0;
insert into t3 values (3),(-1),(4);
set @save_optimizer_switch=@@optimizer_switch;
diff --git a/mysql-test/main/range_vs_index_merge.result b/mysql-test/main/range_vs_index_merge.result
index 33129ac84dc..1729b95a105 100644
--- a/mysql-test/main/range_vs_index_merge.result
+++ b/mysql-test/main/range_vs_index_merge.result
@@ -1,5 +1,3 @@
-DROP TABLE IF EXISTS t1,t2,t3,t4;
-DROP DATABASE IF EXISTS world;
set names utf8;
CREATE DATABASE world;
use world;
diff --git a/mysql-test/main/range_vs_index_merge.test b/mysql-test/main/range_vs_index_merge.test
index 81bf9c10b3a..38b643c0b13 100644
--- a/mysql-test/main/range_vs_index_merge.test
+++ b/mysql-test/main/range_vs_index_merge.test
@@ -3,11 +3,6 @@
--source include/default_charset.inc
--source include/have_sequence.inc
---disable_warnings
-DROP TABLE IF EXISTS t1,t2,t3,t4;
-DROP DATABASE IF EXISTS world;
---enable_warnings
-
set names utf8;
CREATE DATABASE world;
@@ -1051,6 +1046,8 @@ INSERT INTO t1 VALUES
(0,99083,'all','jhjerdvdxboydmpefbiesqbyyvdftsidjtvulamazljx'),
(32767,99084,'s','flj'),(-4947,99085,'something','Vermont'),
(0,99086,'cjfljhjerd','Washington');
+
+ANALYZE TABLE t1;
--enable_query_log
--enable_result_log
diff --git a/mysql-test/main/range_vs_index_merge_innodb.result b/mysql-test/main/range_vs_index_merge_innodb.result
index 4ac62e24940..79a670aedb2 100644
--- a/mysql-test/main/range_vs_index_merge_innodb.result
+++ b/mysql-test/main/range_vs_index_merge_innodb.result
@@ -4,8 +4,6 @@ set @innodb_stats_persistent_sample_pages_save=
@@innodb_stats_persistent_sample_pages;
set global innodb_stats_persistent= 1;
set global innodb_stats_persistent_sample_pages=100;
-DROP TABLE IF EXISTS t1,t2,t3,t4;
-DROP DATABASE IF EXISTS world;
set names utf8;
CREATE DATABASE world;
use world;
diff --git a/mysql-test/main/repair.result b/mysql-test/main/repair.result
index 899ca1e1a32..88f5f9eb06b 100644
--- a/mysql-test/main/repair.result
+++ b/mysql-test/main/repair.result
@@ -14,16 +14,16 @@ create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st));
insert into t1 values(1, "One");
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
-t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
repair table t1 extended;
Table Op Msg_type Msg_text
test.t1 repair status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
-t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
drop table t1;
repair table t1 use_frm;
Table Op Msg_type Msg_text
@@ -47,8 +47,8 @@ REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
SET myisam_repair_threads=@@global.myisam_repair_threads;
DROP TABLE t1;
CREATE TABLE t1(a INT);
diff --git a/mysql-test/main/reset_connection.result b/mysql-test/main/reset_connection.result
index 54f6ffdbd25..f2525760528 100644
--- a/mysql-test/main/reset_connection.result
+++ b/mysql-test/main/reset_connection.result
@@ -8,10 +8,10 @@ Com_select 0
# Test if charset changes after reset (utf8)
connect utf8_conn,localhost,root,,,,,CHARSET=utf8;
connection utf8_conn;
-SELECT IF(@@character_set_client='utf8','OK', 'FAIL') AS RESULT;
+SELECT IF(@@character_set_client='utf8mb3','OK', 'FAIL') AS RESULT;
RESULT
OK
-SELECT IF(@@character_set_client='utf8','OK', 'FAIL') AS RESULT;
+SELECT IF(@@character_set_client='utf8mb3','OK', 'FAIL') AS RESULT;
RESULT
OK
disconnect utf8_conn;
diff --git a/mysql-test/main/reset_connection.test b/mysql-test/main/reset_connection.test
index dd4edc7a959..e6a456fb27d 100644
--- a/mysql-test/main/reset_connection.test
+++ b/mysql-test/main/reset_connection.test
@@ -27,9 +27,9 @@ SHOW local STATUS LIKE 'com_select';
--echo # Test if charset changes after reset (utf8)
connect(utf8_conn,localhost,root,,,,,CHARSET=utf8);
connection utf8_conn;
-SELECT IF(@@character_set_client='utf8','OK', 'FAIL') AS RESULT;
+SELECT IF(@@character_set_client='utf8mb3','OK', 'FAIL') AS RESULT;
--reset_connection
-SELECT IF(@@character_set_client='utf8','OK', 'FAIL') AS RESULT;
+SELECT IF(@@character_set_client='utf8mb3','OK', 'FAIL') AS RESULT;
disconnect utf8_conn;
--echo # Test if charset changes after reset (latin1)
diff --git a/mysql-test/main/rowid_filter_innodb.result b/mysql-test/main/rowid_filter_innodb.result
index 6e740701233..3e673afbc99 100644
--- a/mysql-test/main/rowid_filter_innodb.result
+++ b/mysql-test/main/rowid_filter_innodb.result
@@ -1,4 +1,6 @@
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
DROP DATABASE IF EXISTS dbt3_s001;
CREATE DATABASE dbt3_s001;
use dbt3_s001;
@@ -2581,13 +2583,14 @@ set optimizer_switch='rowid_filter=default';
drop table name, flag2;
drop table t1;
set @@use_stat_tables=@save_use_stat_tables;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
#
# MDEV-18755: possible RORI-plan and possible plan with range filter
#
create table t1 (
pk int not null primary key, f1 varchar(10), f2 varchar(30), a int(10),
key (f1), key (f2)
-) engine=innodb;
+) engine=innodb stats_persistent=0;
insert into t1 values
(2,'a','a',2),(3,'a','a',null),(4,'a','a',55),(5,'a','a',4),(6,'a','a',0),
(7,'a','a',1),(8,'a','a',4),(9,'a','a',null),(10,'a','a',0),(11,'a','a',0),
@@ -2952,7 +2955,7 @@ timestamp timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (id),
KEY ixEventWhoisDomainDomain (domain),
KEY ixEventWhoisDomainTimestamp (timestamp)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB STATS_PERSISTENT=0 DEFAULT CHARSET=utf8;
INSERT INTO t1 (
id, domain, registrant_name, registrant_organization, registrant_street1,
registrant_street2, registrant_street3, registrant_street4, registrant_street5,
@@ -3717,6 +3720,8 @@ set global innodb_stats_persistent= @stats.save;
#
# MDEV-22846: ref access with full scan on keys with NULLs + rowid_filter
#
+set @stats.save= @@innodb_stats_persistent;
+set global innodb_stats_persistent=0;
CREATE TABLE t1 (pk int NOT NULL, c1 varchar(1)) engine=innodb;
INSERT INTO t1 VALUES
(1,NULL),(15,'o'),(16,'x'),(19,'t'),(35,'k'),(36,'h'),(42,'t'),(43,'h'),
@@ -3816,4 +3821,5 @@ Warnings:
Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk`,`test`.`t1`.`c1` AS `c1` from `test`.`t1` where !<expr_cache><`test`.`t1`.`c1`,`test`.`t1`.`pk`>(<in_optimizer>(`test`.`t1`.`c1`,<exists>(/* select#2 */ select `test`.`t2`.`c1` from `test`.`t2` join `test`.`t1` `a1` where `test`.`t2`.`i1` = `test`.`t1`.`pk` and `test`.`t2`.`i1` between 3 and 5 and trigcond(<cache>(`test`.`t1`.`c1`) = `test`.`t2`.`c1`))))
DROP TABLE t1,t2;
+set global innodb_stats_persistent= @stats.save;
# End of 10.4 tests
diff --git a/mysql-test/main/rowid_filter_innodb.test b/mysql-test/main/rowid_filter_innodb.test
index 4255809bc24..8705a0c9a12 100644
--- a/mysql-test/main/rowid_filter_innodb.test
+++ b/mysql-test/main/rowid_filter_innodb.test
@@ -3,7 +3,13 @@
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
+
--source rowid_filter.test
+
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
+
--source include/have_sequence.inc
--echo #
@@ -13,7 +19,7 @@ SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
create table t1 (
pk int not null primary key, f1 varchar(10), f2 varchar(30), a int(10),
key (f1), key (f2)
-) engine=innodb;
+) engine=innodb stats_persistent=0;
insert into t1 values
(2,'a','a',2),(3,'a','a',null),(4,'a','a',55),(5,'a','a',4),(6,'a','a',0),
@@ -268,7 +274,7 @@ CREATE TABLE t1 (
PRIMARY KEY (id),
KEY ixEventWhoisDomainDomain (domain),
KEY ixEventWhoisDomainTimestamp (timestamp)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB STATS_PERSISTENT=0 DEFAULT CHARSET=utf8;
INSERT INTO t1 (
id, domain, registrant_name, registrant_organization, registrant_street1,
@@ -607,6 +613,8 @@ set global innodb_stats_persistent= @stats.save;
--echo # MDEV-22846: ref access with full scan on keys with NULLs + rowid_filter
--echo #
+set @stats.save= @@innodb_stats_persistent;
+set global innodb_stats_persistent=0;
CREATE TABLE t1 (pk int NOT NULL, c1 varchar(1)) engine=innodb;
INSERT INTO t1 VALUES
@@ -640,4 +648,6 @@ eval EXPLAIN EXTENDED $q;
DROP TABLE t1,t2;
+set global innodb_stats_persistent= @stats.save;
+
--echo # End of 10.4 tests
diff --git a/mysql-test/main/rowid_order_innodb.result b/mysql-test/main/rowid_order_innodb.result
index 9b32bf6018f..26fb8ebb707 100644
--- a/mysql-test/main/rowid_order_innodb.result
+++ b/mysql-test/main/rowid_order_innodb.result
@@ -1,3 +1,5 @@
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
SET SESSION DEFAULT_STORAGE_ENGINE = InnoDB;
drop table if exists t1, t2, t3,t4;
create table t1 (
@@ -185,3 +187,4 @@ bb b--b 2 2
ccc c--c 2 2
dddd d--d 2 2
drop table t1;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/rowid_order_innodb.test b/mysql-test/main/rowid_order_innodb.test
index 152eb28d388..d60c29bebf7 100644
--- a/mysql-test/main/rowid_order_innodb.test
+++ b/mysql-test/main/rowid_order_innodb.test
@@ -10,5 +10,9 @@
--source include/have_innodb.inc
let $engine_type= InnoDB;
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
--source include/rowid_order.inc
+
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/rownum.result b/mysql-test/main/rownum.result
new file mode 100644
index 00000000000..3ad51c93260
--- /dev/null
+++ b/mysql-test/main/rownum.result
@@ -0,0 +1,986 @@
+CREATE OR REPLACE TABLE t1(a int, b int) engine=aria;
+CREATE OR REPLACE TABLE t2(a int, b int) engine=aria;
+insert into t1 values (1,10),(2,20),(3,30);
+insert into t2 values (2,21),(3,31),(4,41);
+#
+# Simple selects
+#
+select a,b,rownum() from t1;
+a b rownum()
+1 10 1
+2 20 2
+3 30 3
+select a,b,rownum() from t1 where rownum() < 2;
+a b rownum()
+1 10 1
+select a,b from t1 where rownum() <= 2;
+a b
+1 10
+2 20
+select a,b from t1 where rownum() > 2;
+a b
+#
+# Subqueries
+#
+select t1.a,rownum(),t3.a,t3.t2_rownum from t1, (select t2.a,rownum() as t2_rownum from t2 where rownum() <=2) t3;
+a rownum() a t2_rownum
+1 1 2 1
+1 2 3 2
+2 3 2 1
+2 4 3 2
+3 5 2 1
+3 6 3 2
+select t1.a, (select t2.b from t2 where t1.a=t2.a and rownum() <= 1) 'b' from t1;
+a b
+1 NULL
+2 21
+3 31
+select t1.a, t3.a from t1, (select * from t2 where rownum() <= 2) t3;
+a a
+1 2
+1 3
+2 2
+2 3
+3 2
+3 3
+select * from (select tt.*,rownum() as id from (select * from t1) tt) t3 where id>2;
+a b id
+3 30 3
+#
+# Joins
+#
+select t1.a,t1.b,t2.a,t2.b,rownum() from t1,t2 where rownum() <= 4;
+a b a b rownum()
+1 10 2 21 1
+2 20 2 21 2
+3 30 2 21 3
+1 10 3 31 4
+select *,rownum() from t1,t2 where t1.a=t2.a and rownum()<=2;
+a b a b rownum()
+2 20 2 21 1
+3 30 3 31 2
+select * from t1 left join t2 on (t2.a=t1.a and rownum()=0);
+a b a b
+1 10 NULL NULL
+2 20 NULL NULL
+3 30 NULL NULL
+select * from t1 left join t2 on (t2.a=t1.a and rownum()>1);
+a b a b
+1 10 NULL NULL
+2 20 NULL NULL
+3 30 NULL NULL
+select * from t1 left join t2 on (t2.a=t1.a and rownum()<1);
+a b a b
+1 10 NULL NULL
+2 20 NULL NULL
+3 30 NULL NULL
+select * from t1 left join t2 on (t2.a=t1.a and rownum()=1);
+a b a b
+2 20 2 21
+1 10 NULL NULL
+3 30 NULL NULL
+select * from t1 left join t2 on (t2.a=t1.a and rownum()>=1);
+a b a b
+2 20 2 21
+3 30 3 31
+1 10 NULL NULL
+#
+# Union
+#
+select * from t1 where rownum() <=2 union select * from t2 where rownum()<= 1;
+a b
+1 10
+2 20
+2 21
+#
+# Order by
+#
+select * from t1 where rownum() <= 2 order by a desc;
+a b
+2 20
+1 10
+explain select * from t1 where rownum() <= 2 order by a desc;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using filesort
+select t1.a,t1.b,rownum() from t1 where rownum() <= 2 order by a desc;
+a b rownum()
+2 20 2
+1 10 1
+explain select t1.a,t1.b,rownum() from t1 where rownum() <= 2 order by a desc;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using temporary; Using filesort
+select *,rownum() from t1,t2;
+a b a b rownum()
+1 10 2 21 1
+2 20 2 21 2
+3 30 2 21 3
+1 10 3 31 4
+2 20 3 31 5
+3 30 3 31 6
+1 10 4 41 7
+2 20 4 41 8
+3 30 4 41 9
+select *,rownum() from t1,t2 order by t2.a desc, t1.a desc;
+a b a b rownum()
+3 30 4 41 9
+2 20 4 41 8
+1 10 4 41 7
+3 30 3 31 6
+2 20 3 31 5
+1 10 3 31 4
+3 30 2 21 3
+2 20 2 21 2
+1 10 2 21 1
+select * from (select * from t1 order by a desc) as t where rownum() <= 2;
+a b
+3 30
+2 20
+select * from t1,t2 where t1.a=t2.a and rownum()<=2 order by t1.a,t2.a;
+a b a b
+2 20 2 21
+3 30 3 31
+#
+# Having
+#
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2;
+a sum(t1.b) r
+1 10 1
+2 20 2
+select * from t1 having rownum() <= 2;
+a b
+1 10
+2 20
+select t1.a, sum(t1.b), rownum() from t1 group by t1.a;
+a sum(t1.b) rownum()
+1 10 1
+2 20 2
+3 30 3
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2;
+a sum(t1.b) r
+1 10 1
+2 20 2
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having rownum() <= 2;
+a sum(t1.b) r
+1 10 1
+2 20 2
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2 order by a desc;
+a sum(t1.b) r
+2 20 2
+1 10 1
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having rownum() <= 2 order by a desc;
+a sum(t1.b) r
+2 20 2
+1 10 1
+#
+# Sum functions
+#
+select max(rownum()),min(rownum()) from t1;
+max(rownum()) min(rownum())
+3 1
+select sum(rownum()),avg(rownum()) from t1;
+sum(rownum()) avg(rownum())
+6 2.0000
+#
+# Group by
+#
+select t1.a,sum(t1.b) from t1 where rownum() < 2 group by t1.a;
+a sum(t1.b)
+1 10
+select t1.a,sum(t2.b) from t1 JOIN t2 ON (t1.a=t2.a) where rownum() <= 2 group by t1.a;
+a sum(t2.b)
+2 21
+3 31
+select * from (select t1.a,sum(t2.b) from t1 JOIN t2 ON (t1.a=t2.a) group by t1.a) as t where rownum() <= 1;
+a sum(t2.b)
+2 21
+select t1.a,sum(rownum()),count(*) from t1 where rownum() <= 2 group by t1.a;
+a sum(rownum()) count(*)
+1 1 1
+2 2 1
+select * from (select t1.a,sum(t1.b) from t1 group by t1.a) as t3 where rownum() < 2;
+a sum(t1.b)
+1 10
+create table t3 (a int) engine=myisam;
+insert into t3 values (3),(5),(5),(3);
+select a, max(rownum()) from t3 group by a;
+a max(rownum())
+3 4
+5 3
+drop table t3;
+CREATE TABLE t3 (
+a int(11) DEFAULT NULL,
+b varchar(1024) DEFAULT NULL
+);
+insert into t3 select mod(seq*3,20)+1, repeat(char(33+mod(seq,90)),mod(seq,10)*100) from seq_1_to_23;
+SELECT sq.a,length(sq.f) FROM (SELECT a, GROUP_CONCAT(b,b) AS f FROM t3 GROUP BY a ORDER BY a desc) as sq WHERE ROWNUM() <= 10;
+a length(sq.f)
+20 600
+19 1200
+18 1800
+17 400
+16 1000
+15 1600
+14 200
+13 800
+12 1400
+11 0
+drop table t3;
+#
+# Prepared statements
+#
+PREPARE stmt1 from "select a,b,rownum() from t1 where rownum() <= 2";
+execute stmt1;
+a b rownum()
+1 10 1
+2 20 2
+execute stmt1;
+a b rownum()
+1 10 1
+2 20 2
+deallocate prepare stmt1;
+#
+# Views
+#
+create view v1 as select t1.a,rownum() from t1;
+select * from v1;
+a rownum()
+1 1
+2 2
+3 3
+select t1.a,v1.* from t1,v1 where t1.a=v1.a;
+a a rownum()
+1 1 1
+2 2 2
+3 3 3
+drop view v1;
+CREATE TABLE t3 (a INT);
+INSERT INTO t3 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT a FROM t3 WHERE ROWNUM() <= 2;
+SELECT * FROM v1;
+a
+1
+2
+drop view v1;
+drop table t3;
+#
+# Reserved words
+#
+create table t4 (a int, rownum int);
+insert into t4 (a,rownum) values (1,2);
+select t4.a,t4.rownum from t4;
+a rownum
+1 2
+drop table t4;
+#
+# Test Oracle mode
+#
+set SQL_MODE=ORACLE;
+select t1.a,rownum from t1 where rownum<=2;
+a rownum
+1 1
+2 2
+select t1.a,rownum() from t1 where rownum()<=2;
+a rownum()
+1 1
+2 2
+create table t4 (a int, rownum int);
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rownum int)' at line 1
+DECLARE
+CURSOR c_cursor
+IS select a,b,rownum from t1 where rownum <= 2;
+v_a t1.a%TYPE;
+v_b t1.b%TYPE;
+v_rn t1.a%TYPE;
+BEGIN
+OPEN c_cursor;
+FETCH c_cursor INTO v_a, v_b, v_rn;
+WHILE c_cursor%FOUND LOOP
+SELECT concat(v_a,'--',v_b,'--',v_rn);
+FETCH c_cursor INTO v_a, v_b, v_rn;
+END LOOP;
+CLOSE c_cursor;
+END;|
+concat(v_a,'--',v_b,'--',v_rn)
+1--10--1
+concat(v_a,'--',v_b,'--',v_rn)
+2--20--2
+select a, rownum from t1 group by a, rownum having rownum < 3;
+a rownum
+1 1
+2 2
+select a, rownum as r from t1 group by a, rownum having r < 3;
+a r
+1 1
+2 2
+select a, rownum from t1 group by a, rownum having "rownum" < 3;
+a rownum
+1 1
+2 2
+select a, rownum from t1 group by a, rownum having rownum < 3 order by a desc;
+a rownum
+2 2
+1 1
+select a, rownum as r from t1 group by a, rownum having r < 3 order by a desc;
+a r
+2 2
+1 1
+select a, rownum from t1 group by a, rownum having "rownum" < 3 order by a desc;
+a rownum
+2 2
+1 1
+set SQL_MODE=DEFAULT;
+# Cleanup
+drop table t1,t2;
+#
+# INSERT
+#
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,rownum()),(2,rownum()),(3,rownum());
+select * from t1;
+a b
+1 1
+2 2
+3 3
+drop table t1;
+#
+# INSERT DELAYED
+#
+create table t1 (a int not null primary key, b int);
+insert delayed into t1 values (1,rownum()),(2,rownum()),(3,rownum());
+select * from t1;
+a b
+1 1
+2 2
+3 3
+drop table t1;
+#
+# INSERT IGNORED
+#
+create table t1 (a int not null primary key, b int);
+insert ignore into t1 values (1,rownum()),(2,rownum()),(2,rownum()),(3,rownum());
+Warnings:
+Warning 1062 Duplicate entry '2' for key 'PRIMARY'
+select * from t1;
+a b
+1 1
+2 2
+3 4
+delete from t1;
+insert ignore into t1 select * from (values (1,rownum()),(2,rownum()),(2,rownum()),(3,rownum())) t;
+Warnings:
+Warning 1062 Duplicate entry '2' for key 'PRIMARY'
+select * from t1;
+a b
+1 1
+2 2
+3 4
+drop table t1;
+#
+# INSERT ... RETURNING
+#
+create or replace table t1 (a int);
+insert into t1 values (1),(2) returning a, rownum();
+a rownum()
+1 1
+2 2
+drop table t1;
+#
+# UPDATE
+#
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+update t1 set b=0;
+update t1 set b=rownum()+1;
+select * from t1;
+a b
+1 2
+2 3
+3 4
+update t1 set b=0;
+update t1 set b=rownum() where a < 10 and rownum() < 2;
+select * from t1;
+a b
+1 1
+2 0
+3 0
+drop table t1;
+create table t1 (a int);
+insert into t1 values (10),(20),(30);
+update t1 set a = rownum();
+select * from t1;
+a
+1
+2
+3
+update t1 set a = rownum();
+select * from t1;
+a
+1
+2
+3
+drop table t1;
+#
+# DELETE
+#
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,0),(3,0);
+delete from t1 where a < 10 and rownum() < 2;
+select * from t1;
+a b
+2 0
+3 0
+drop table t1;
+#
+# MULTI-TABLE-DELETE
+#
+create table t1 (a int not null primary key);
+insert into t1 values (1),(2),(3);
+create table t2 (a int not null primary key);
+insert into t2 values (1),(2),(3);
+delete t1,t2 from t1,t2 where t1.a=t2.a and rownum() <= 2;
+select * from t1;
+a
+3
+select * from t2;
+a
+3
+drop table t1,t2;
+#
+# MULTI-TABLE-UPDATE
+CREATE TABLE t1 (ID INT);
+CREATE TABLE t2 (ID INT,
+s1 TEXT, s2 TEXT, s3 VARCHAR(10), s4 TEXT, s5 VARCHAR(10));
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1,'test', 'test', 'test', 'test', 'test'),
+(2,'test', 'test', 'test', 'test', 'test');
+SELECT * FROM t1 LEFT JOIN t2 USING(ID);
+ID s1 s2 s3 s4 s5
+1 test test test test test
+2 test test test test test
+UPDATE t1 LEFT JOIN t2 USING(ID) SET s1 = 'changed';
+select * from t2;
+ID s1 s2 s3 s4 s5
+1 changed test test test test
+2 changed test test test test
+update t2 set s1="";
+UPDATE t1 LEFT JOIN t2 USING(ID) SET s1 = 'changed' where rownum() <=1;
+select * from t2;
+ID s1 s2 s3 s4 s5
+1 changed test test test test
+2 test test test test
+drop table t1,t2;
+#
+# LOAD DATA
+#
+create table t1 (a int, b int, c int);
+load data infile '../../std_data/loaddata7.dat' into table t1 fields terminated by ',' lines terminated by "\r\n" (a,b) set c=rownum();
+select * from t1;
+a b c
+2 2 1
+3 3 2
+4 4 3
+5 5 4
+6 6 5
+drop table t1;
+#
+# LIMIT OPTIMIZATION
+#
+create table t1 (a int);
+insert into t1 select seq from seq_1_to_100;
+flush status;
+select * from t1 where rownum() <= 3;
+a
+1
+2
+3
+show status like "Rows_read";
+Variable_name Value
+Rows_read 3
+flush status;
+select * from t1 where rownum() <= 4 and rownum() <= 3;
+a
+1
+2
+3
+show status like "Rows_read";
+Variable_name Value
+Rows_read 3
+flush status;
+select * from t1 where rownum() < 4 and a > 10;
+a
+11
+12
+13
+show status like "Rows_read";
+Variable_name Value
+Rows_read 13
+flush status;
+select * from t1 where 3 >= rownum();
+a
+1
+2
+3
+show status like "Rows_read";
+Variable_name Value
+Rows_read 3
+flush status;
+select * from t1 where 4 > rownum() and a > 20;
+a
+21
+22
+23
+show status like "Rows_read";
+Variable_name Value
+Rows_read 23
+flush status;
+select * from t1 where rownum() = 1 and a > 10;
+a
+11
+show status like "Rows_read";
+Variable_name Value
+Rows_read 11
+flush status;
+select * from t1 where a > 30 && 1 = rownum();
+a
+31
+show status like "Rows_read";
+Variable_name Value
+Rows_read 31
+flush status;
+# No limit optimization
+select * from t1 where rownum() > 10;
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where 10 < rownum();
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where rownum() >= 10;
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where 10 < rownum();
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where 10 <= rownum();
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where 2 = rownum();
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where rownum() = 2;
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select * from t1 where rownum() <= 0;
+a
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+select *,rownum() from t1 where rownum() < 10 limit 4, 4;
+a rownum()
+5 5
+6 6
+7 7
+8 8
+show status like "Rows_read";
+Variable_name Value
+Rows_read 8
+flush status;
+select * from t1 where rownum() < 10 order by a;
+a
+1
+2
+3
+4
+5
+6
+7
+8
+9
+show status like "Rows_read";
+Variable_name Value
+Rows_read 100
+flush status;
+# rownum and limit
+select * from t1 where rownum() < 4 limit 10;
+a
+1
+2
+3
+show status like "Rows_read";
+Variable_name Value
+Rows_read 3
+flush status;
+select * from t1 where rownum() < 10 limit 4;
+a
+1
+2
+3
+4
+show status like "Rows_read";
+Variable_name Value
+Rows_read 4
+drop table t1;
+#
+# Rownum examples from Woqutech
+#
+set SQL_MODE=ORACLE;
+create table t1 (c1 int ,c2 varchar(20)) engine=myisam;
+insert into t1 values (1, 'aaa'),(2, 'bbb'),(3, 'ccc'),(4, 'ddd'),(5, 'eee');
+update t1 set c2 = 'xxx' where rownum = 2;
+select * from t1 where c2='xxx';
+c1 c2
+update t1 set c2 = 'xxx' where rownum < 3;
+select * from t1 where c2='xxx';
+c1 c2
+1 xxx
+2 xxx
+delete from t1 where rownum = 2;
+select count(*) from t1;
+count(*)
+5
+delete from t1 where rownum < 3;
+select count(*) from t1;
+count(*)
+3
+delete from t1 where c1=rownum ;
+select count(*) from t1;
+count(*)
+3
+delete from t1 where c1=rownum+2 ;
+select count(*) from t1;
+count(*)
+0
+set SQL_MODE=DEFAULT;
+drop table t1;
+#
+# Rownum() used in not supported places (returns 0 or gives an error)
+#
+set @a=rownum();
+select @a;
+@a
+0
+create or replace table t (a int, b int as (rownum()) virtual);
+ERROR HY000: Function or expression 'rownum()' cannot be used in the GENERATED ALWAYS AS clause of `b`
+create table t1 (a int);
+insert into t1 values (3),(1),(5),(8),(4);
+handler t1 open;
+handler t1 read next where rownum() < 1;
+ERROR HY000: Function or expression 'rownum()' cannot be used in the WHERE clause of `HANDLER`
+handler t1 close;
+drop table t1;
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+create function f() returns int return rownum();
+select a, rownum(), f() from t1;
+a rownum() f()
+1 1 0
+2 2 0
+3 3 0
+drop function f;
+drop table t1;
+create or replace table t1 (a int, r int);
+create trigger tr before update on t1 for each row set NEW.r = rownum();
+insert into t1 (a) values (1),(2);
+select * from t1;
+a r
+1 NULL
+2 NULL
+update t1 set a=a+10;
+select * from t1;
+a r
+11 0
+12 0
+drop trigger tr;
+drop table t1;
+#
+# LIMIT optimisation
+#
+create table t1 (a int);
+insert into t1 values (1),(2),(3),(4),(5);
+flush status;
+select * from (select a from t1 where a < 1000) as tt where rownum() <= 2;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 2
+explain extended select * from (select a from t1 where a < 1000) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 limit 2) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000) as tt where rownum() <= 2";
+flush status;
+execute stmt;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 2
+flush status;
+execute stmt;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 2
+deallocate prepare stmt;
+flush status;
+select * from (select a from t1 where a < 1000 group by a) as tt where rownum() <= 2;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 5
+explain extended select * from (select a from t1 where a < 1000 group by a) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary; Using filesort
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 group by `test`.`t1`.`a` limit 2) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 group by a) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+flush status;
+select * from (select a from t1 where a < 1000 group by a order by 1) as tt where rownum() <= 2;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 5
+explain extended select * from (select a from t1 where a < 1000 group by a order by 1) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary; Using filesort
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 group by `test`.`t1`.`a` order by 1 limit 2) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 group by a order by 1) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+flush status;
+select * from (select a from t1 where a < 1000 union select 10) as tt where rownum() <= 2;
+a
+1
+2
+show status like "Rows_read";
+Variable_name Value
+Rows_read 5
+explain extended select * from (select a from t1 where a < 1000 union select 10) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+3 UNION NULL NULL NULL NULL NULL NULL NULL NULL No tables used
+NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 union /* select#3 */ select 10 AS `10` limit 2) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 union select 10) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+# Other limit
+select * from (select a from t1 where a < 1000 group by a order by 1 limit 1) as tt where rownum() <= 2;
+a
+1
+explain extended select * from (select a from t1 where a < 1000 group by a order by 1 limit 1) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary; Using filesort
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 group by `test`.`t1`.`a` order by 1 limit 1) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 group by a order by 1 limit 1) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+execute stmt;
+a
+1
+deallocate prepare stmt;
+# Other limit less
+select * from (select a from t1 where a < 1000 group by a order by 1 limit 10) as tt where rownum() <= 2;
+a
+1
+2
+explain extended select * from (select a from t1 where a < 1000 group by a order by 1 limit 10) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary; Using filesort
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 group by `test`.`t1`.`a` order by 1 limit 2) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 group by a order by 1 limit 10) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+select * from (select a from t1 where a < 1000 union select 10 limit 1) as tt where rownum() <= 2;
+a
+1
+explain extended select * from (select a from t1 where a < 1000 union select 10 limit 1) as tt where rownum() <= 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+3 UNION NULL NULL NULL NULL NULL NULL NULL NULL No tables used
+NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 union /* select#3 */ select 10 AS `10` limit 1) `tt` where rownum() <= 2 limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000 union select 10 limit 1) as tt where rownum() <= 2";
+execute stmt;
+a
+1
+execute stmt;
+a
+1
+deallocate prepare stmt;
+# < rownum
+select * from (select a from t1 where a < 1000) as tt where rownum() < 2;
+a
+1
+explain extended select * from (select a from t1 where a < 1000) as tt where rownum() < 2;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 limit 1) `tt` where rownum() < 2 limit 1
+prepare stmt from "select * from (select a from t1 where a < 1000) as tt where rownum() < 2";
+execute stmt;
+a
+1
+execute stmt;
+a
+1
+deallocate prepare stmt;
+# Simple expression
+select * from (select a from t1 where a < 1000) as tt where rownum() <= 1+1;
+a
+1
+2
+explain extended select * from (select a from t1 where a < 1000) as tt where rownum() <= 1+1;
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 limit 2) `tt` where rownum() <= <cache>(1 + 1) limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000) as tt where rownum() <= 1+1";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+# Simple expression reversed
+select * from (select a from t1 where a < 1000) as tt where 1+1 >= rownum();
+a
+1
+2
+explain extended select * from (select a from t1 where a < 1000) as tt where 1+1 >= rownum();
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00 Using where
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 limit 2) `tt` where <cache>(1 + 1) >= rownum() limit 2
+prepare stmt from "select * from (select a from t1 where a < 1000) as tt where 1+1 >= rownum()";
+execute stmt;
+a
+1
+2
+execute stmt;
+a
+1
+2
+deallocate prepare stmt;
+# expensive (no opt)
+select * from (select a from t1 where a < 1000) as tt where (select max(a) from t1) >= rownum();
+a
+1
+2
+3
+4
+5
+explain extended select * from (select a from t1 where a < 1000) as tt where (select max(a) from t1) >= rownum();
+id select_type table type possible_keys key key_len ref rows filtered Extra
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5 100.00 Using where
+3 SUBQUERY t1 ALL NULL NULL NULL NULL 5 100.00
+2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using where
+Warnings:
+Note 1003 /* select#1 */ select `tt`.`a` AS `a` from (/* select#2 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 1000 limit 5) `tt` where (/* select#3 */ select max(`test`.`t1`.`a`) from `test`.`t1`) >= rownum() limit 5
+prepare stmt from "select * from (select a from t1 where a < 1000) as tt where (select max(a) from t1) >= rownum()";
+execute stmt;
+a
+1
+2
+3
+4
+5
+execute stmt;
+a
+1
+2
+3
+4
+5
+deallocate prepare stmt;
+drop table t1;
+#
+# Table value constructors
+#
+values ("first row"),("next row is 3"),(rownum()),("next row is 5"),(rownum());
+first row
+first row
+next row is 3
+3
+next row is 5
+5
diff --git a/mysql-test/main/rownum.test b/mysql-test/main/rownum.test
new file mode 100644
index 00000000000..bdd0bfa4f41
--- /dev/null
+++ b/mysql-test/main/rownum.test
@@ -0,0 +1,570 @@
+--source include/have_sequence.inc
+#
+# Test of basic rownum() functionallity
+# Test are done with Aria to ensure that row order is stable
+#
+
+CREATE OR REPLACE TABLE t1(a int, b int) engine=aria;
+CREATE OR REPLACE TABLE t2(a int, b int) engine=aria;
+insert into t1 values (1,10),(2,20),(3,30);
+insert into t2 values (2,21),(3,31),(4,41);
+
+--echo #
+--echo # Simple selects
+--echo #
+
+select a,b,rownum() from t1;
+select a,b,rownum() from t1 where rownum() < 2;
+select a,b from t1 where rownum() <= 2;
+select a,b from t1 where rownum() > 2;
+
+--echo #
+--echo # Subqueries
+--echo #
+
+select t1.a,rownum(),t3.a,t3.t2_rownum from t1, (select t2.a,rownum() as t2_rownum from t2 where rownum() <=2) t3;
+select t1.a, (select t2.b from t2 where t1.a=t2.a and rownum() <= 1) 'b' from t1;
+select t1.a, t3.a from t1, (select * from t2 where rownum() <= 2) t3;
+select * from (select tt.*,rownum() as id from (select * from t1) tt) t3 where id>2;
+
+--echo #
+--echo # Joins
+--echo #
+
+select t1.a,t1.b,t2.a,t2.b,rownum() from t1,t2 where rownum() <= 4;
+select *,rownum() from t1,t2 where t1.a=t2.a and rownum()<=2;
+select * from t1 left join t2 on (t2.a=t1.a and rownum()=0);
+select * from t1 left join t2 on (t2.a=t1.a and rownum()>1);
+select * from t1 left join t2 on (t2.a=t1.a and rownum()<1);
+select * from t1 left join t2 on (t2.a=t1.a and rownum()=1);
+select * from t1 left join t2 on (t2.a=t1.a and rownum()>=1);
+
+--echo #
+--echo # Union
+--echo #
+
+select * from t1 where rownum() <=2 union select * from t2 where rownum()<= 1;
+
+--echo #
+--echo # Order by
+--echo #
+
+select * from t1 where rownum() <= 2 order by a desc;
+explain select * from t1 where rownum() <= 2 order by a desc;
+select t1.a,t1.b,rownum() from t1 where rownum() <= 2 order by a desc;
+explain select t1.a,t1.b,rownum() from t1 where rownum() <= 2 order by a desc;
+select *,rownum() from t1,t2;
+select *,rownum() from t1,t2 order by t2.a desc, t1.a desc;
+select * from (select * from t1 order by a desc) as t where rownum() <= 2;
+select * from t1,t2 where t1.a=t2.a and rownum()<=2 order by t1.a,t2.a;
+
+--echo #
+--echo # Having
+--echo #
+
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2;
+select * from t1 having rownum() <= 2;
+select t1.a, sum(t1.b), rownum() from t1 group by t1.a;
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2;
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having rownum() <= 2;
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having r <= 2 order by a desc;
+select t1.a, sum(t1.b), rownum() as 'r' from t1 group by t1.a having rownum() <= 2 order by a desc;
+
+--echo #
+--echo # Sum functions
+--echo #
+
+select max(rownum()),min(rownum()) from t1;
+select sum(rownum()),avg(rownum()) from t1;
+
+--echo #
+--echo # Group by
+--echo #
+
+select t1.a,sum(t1.b) from t1 where rownum() < 2 group by t1.a;
+select t1.a,sum(t2.b) from t1 JOIN t2 ON (t1.a=t2.a) where rownum() <= 2 group by t1.a;
+select * from (select t1.a,sum(t2.b) from t1 JOIN t2 ON (t1.a=t2.a) group by t1.a) as t where rownum() <= 1;
+select t1.a,sum(rownum()),count(*) from t1 where rownum() <= 2 group by t1.a;
+select * from (select t1.a,sum(t1.b) from t1 group by t1.a) as t3 where rownum() < 2;
+
+create table t3 (a int) engine=myisam;
+insert into t3 values (3),(5),(5),(3);
+select a, max(rownum()) from t3 group by a;
+drop table t3;
+
+CREATE TABLE t3 (
+ a int(11) DEFAULT NULL,
+ b varchar(1024) DEFAULT NULL
+);
+insert into t3 select mod(seq*3,20)+1, repeat(char(33+mod(seq,90)),mod(seq,10)*100) from seq_1_to_23;
+#chack after fix MDEV-28571
+--disable_view_protocol
+SELECT sq.a,length(sq.f) FROM (SELECT a, GROUP_CONCAT(b,b) AS f FROM t3 GROUP BY a ORDER BY a desc) as sq WHERE ROWNUM() <= 10;
+--enable_view_protocol
+drop table t3;
+
+--echo #
+--echo # Prepared statements
+--echo #
+
+PREPARE stmt1 from "select a,b,rownum() from t1 where rownum() <= 2";
+execute stmt1;
+execute stmt1;
+deallocate prepare stmt1;
+
+--echo #
+--echo # Views
+--echo #
+
+create view v1 as select t1.a,rownum() from t1;
+select * from v1;
+select t1.a,v1.* from t1,v1 where t1.a=v1.a;
+drop view v1;
+
+CREATE TABLE t3 (a INT);
+INSERT INTO t3 VALUES (1),(2),(3);
+CREATE VIEW v1 AS SELECT a FROM t3 WHERE ROWNUM() <= 2;
+SELECT * FROM v1;
+drop view v1;
+drop table t3;
+
+--echo #
+--echo # Reserved words
+--echo #
+
+create table t4 (a int, rownum int);
+insert into t4 (a,rownum) values (1,2);
+select t4.a,t4.rownum from t4;
+drop table t4;
+
+--echo #
+--echo # Test Oracle mode
+--echo #
+
+set SQL_MODE=ORACLE;
+select t1.a,rownum from t1 where rownum<=2;
+select t1.a,rownum() from t1 where rownum()<=2;
+--error ER_PARSE_ERROR
+create table t4 (a int, rownum int);
+
+DELIMITER |;
+DECLARE
+ CURSOR c_cursor
+ IS select a,b,rownum from t1 where rownum <= 2;
+ v_a t1.a%TYPE;
+ v_b t1.b%TYPE;
+ v_rn t1.a%TYPE;
+BEGIN
+ OPEN c_cursor;
+ FETCH c_cursor INTO v_a, v_b, v_rn;
+ WHILE c_cursor%FOUND LOOP
+ SELECT concat(v_a,'--',v_b,'--',v_rn);
+ FETCH c_cursor INTO v_a, v_b, v_rn;
+ END LOOP;
+ CLOSE c_cursor;
+END;|
+DELIMITER ;|
+
+select a, rownum from t1 group by a, rownum having rownum < 3;
+select a, rownum as r from t1 group by a, rownum having r < 3;
+select a, rownum from t1 group by a, rownum having "rownum" < 3;
+select a, rownum from t1 group by a, rownum having rownum < 3 order by a desc;
+select a, rownum as r from t1 group by a, rownum having r < 3 order by a desc;
+select a, rownum from t1 group by a, rownum having "rownum" < 3 order by a desc;
+
+set SQL_MODE=DEFAULT;
+
+--echo # Cleanup
+
+drop table t1,t2;
+
+--echo #
+--echo # INSERT
+--echo #
+
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,rownum()),(2,rownum()),(3,rownum());
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # INSERT DELAYED
+--echo #
+
+create table t1 (a int not null primary key, b int);
+insert delayed into t1 values (1,rownum()),(2,rownum()),(3,rownum());
+let $wait_condition= SELECT COUNT(*)=3 FROM t1;
+source include/wait_condition.inc;
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # INSERT IGNORED
+--echo #
+
+create table t1 (a int not null primary key, b int);
+# with VALUES
+insert ignore into t1 values (1,rownum()),(2,rownum()),(2,rownum()),(3,rownum());
+select * from t1;
+delete from t1;
+# with SELECT
+insert ignore into t1 select * from (values (1,rownum()),(2,rownum()),(2,rownum()),(3,rownum())) t;
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # INSERT ... RETURNING
+--echo #
+
+create or replace table t1 (a int);
+insert into t1 values (1),(2) returning a, rownum();
+drop table t1;
+
+--echo #
+--echo # UPDATE
+--echo #
+
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+update t1 set b=0;
+update t1 set b=rownum()+1;
+select * from t1;
+
+update t1 set b=0;
+update t1 set b=rownum() where a < 10 and rownum() < 2;
+select * from t1;
+drop table t1;
+
+create table t1 (a int);
+insert into t1 values (10),(20),(30);
+update t1 set a = rownum();
+select * from t1;
+update t1 set a = rownum();
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # DELETE
+--echo #
+
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,0),(3,0);
+delete from t1 where a < 10 and rownum() < 2;
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # MULTI-TABLE-DELETE
+--echo #
+
+create table t1 (a int not null primary key);
+insert into t1 values (1),(2),(3);
+create table t2 (a int not null primary key);
+insert into t2 values (1),(2),(3);
+
+delete t1,t2 from t1,t2 where t1.a=t2.a and rownum() <= 2;
+select * from t1;
+select * from t2;
+drop table t1,t2;
+
+--echo #
+--echo # MULTI-TABLE-UPDATE
+
+CREATE TABLE t1 (ID INT);
+CREATE TABLE t2 (ID INT,
+ s1 TEXT, s2 TEXT, s3 VARCHAR(10), s4 TEXT, s5 VARCHAR(10));
+
+INSERT INTO t1 VALUES (1),(2);
+INSERT INTO t2 VALUES (1,'test', 'test', 'test', 'test', 'test'),
+ (2,'test', 'test', 'test', 'test', 'test');
+
+SELECT * FROM t1 LEFT JOIN t2 USING(ID);
+UPDATE t1 LEFT JOIN t2 USING(ID) SET s1 = 'changed';
+select * from t2;
+update t2 set s1="";
+UPDATE t1 LEFT JOIN t2 USING(ID) SET s1 = 'changed' where rownum() <=1;
+select * from t2;
+drop table t1,t2;
+
+--echo #
+--echo # LOAD DATA
+--echo #
+
+create table t1 (a int, b int, c int);
+load data infile '../../std_data/loaddata7.dat' into table t1 fields terminated by ',' lines terminated by "\r\n" (a,b) set c=rownum();
+select * from t1;
+drop table t1;
+
+--echo #
+--echo # LIMIT OPTIMIZATION
+--echo #
+
+create table t1 (a int);
+insert into t1 select seq from seq_1_to_100;
+
+flush status;
+select * from t1 where rownum() <= 3;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() <= 4 and rownum() <= 3;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() < 4 and a > 10;
+show status like "Rows_read";
+flush status;
+select * from t1 where 3 >= rownum();
+show status like "Rows_read";
+flush status;
+select * from t1 where 4 > rownum() and a > 20;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() = 1 and a > 10;
+show status like "Rows_read";
+flush status;
+select * from t1 where a > 30 && 1 = rownum();
+show status like "Rows_read";
+flush status;
+
+--echo # No limit optimization
+
+select * from t1 where rownum() > 10;
+show status like "Rows_read";
+flush status;
+select * from t1 where 10 < rownum();
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() >= 10;
+show status like "Rows_read";
+flush status;
+select * from t1 where 10 < rownum();
+show status like "Rows_read";
+flush status;
+select * from t1 where 10 <= rownum();
+show status like "Rows_read";
+flush status;
+select * from t1 where 2 = rownum();
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() = 2;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() <= 0;
+show status like "Rows_read";
+flush status;
+select *,rownum() from t1 where rownum() < 10 limit 4, 4;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() < 10 order by a;
+show status like "Rows_read";
+flush status;
+
+
+--echo # rownum and limit
+
+select * from t1 where rownum() < 4 limit 10;
+show status like "Rows_read";
+flush status;
+select * from t1 where rownum() < 10 limit 4;
+show status like "Rows_read";
+
+drop table t1;
+
+--echo #
+--echo # Rownum examples from Woqutech
+--echo #
+
+set SQL_MODE=ORACLE;
+create table t1 (c1 int ,c2 varchar(20)) engine=myisam;
+insert into t1 values (1, 'aaa'),(2, 'bbb'),(3, 'ccc'),(4, 'ddd'),(5, 'eee');
+update t1 set c2 = 'xxx' where rownum = 2;
+select * from t1 where c2='xxx';
+update t1 set c2 = 'xxx' where rownum < 3;
+select * from t1 where c2='xxx';
+delete from t1 where rownum = 2;
+select count(*) from t1;
+delete from t1 where rownum < 3;
+select count(*) from t1;
+delete from t1 where c1=rownum ;
+select count(*) from t1;
+delete from t1 where c1=rownum+2 ;
+select count(*) from t1;
+set SQL_MODE=DEFAULT;
+drop table t1;
+
+--echo #
+--echo # Rownum() used in not supported places (returns 0 or gives an error)
+--echo #
+
+set @a=rownum();
+select @a;
+
+--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
+create or replace table t (a int, b int as (rownum()) virtual);
+
+create table t1 (a int);
+insert into t1 values (3),(1),(5),(8),(4);
+handler t1 open;
+--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
+handler t1 read next where rownum() < 1;
+handler t1 close;
+drop table t1;
+
+# rownum() executed in a function will be run in the function context.
+
+create table t1 (a int not null primary key, b int);
+insert into t1 values (1,1),(2,2),(3,3);
+create function f() returns int return rownum();
+select a, rownum(), f() from t1;
+drop function f;
+drop table t1;
+
+# rownum() executed in a trigger will be run in the function context.
+
+create or replace table t1 (a int, r int);
+create trigger tr before update on t1 for each row set NEW.r = rownum();
+insert into t1 (a) values (1),(2);
+select * from t1;
+update t1 set a=a+10;
+select * from t1;
+drop trigger tr;
+drop table t1;
+
+--echo #
+--echo # LIMIT optimisation
+--echo #
+
+create table t1 (a int);
+insert into t1 values (1),(2),(3),(4),(5);
+
+--disable_view_protocol
+let $query=
+select * from (select a from t1 where a < 1000) as tt where rownum() <= 2;
+flush status;
+eval $query;
+show status like "Rows_read";
+eval explain extended $query;
+eval prepare stmt from "$query";
+flush status;
+execute stmt;
+show status like "Rows_read";
+flush status;
+execute stmt;
+show status like "Rows_read";
+deallocate prepare stmt;
+
+
+let $query=
+select * from (select a from t1 where a < 1000 group by a) as tt where rownum() <= 2;
+flush status;
+eval $query;
+show status like "Rows_read";
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+let $query=
+select * from (select a from t1 where a < 1000 group by a order by 1) as tt where rownum() <= 2;
+flush status;
+eval $query;
+show status like "Rows_read";
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+let $query=
+select * from (select a from t1 where a < 1000 union select 10) as tt where rownum() <= 2;
+flush status;
+eval $query;
+show status like "Rows_read";
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+--enable_view_protocol
+
+--echo # Other limit
+
+let $query=
+select * from (select a from t1 where a < 1000 group by a order by 1 limit 1) as tt where rownum() <= 2;
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+--echo # Other limit less
+
+let $query=
+select * from (select a from t1 where a < 1000 group by a order by 1 limit 10) as tt where rownum() <= 2;
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+let $query=
+select * from (select a from t1 where a < 1000 union select 10 limit 1) as tt where rownum() <= 2;
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+--echo # < rownum
+
+let $query=
+select * from (select a from t1 where a < 1000) as tt where rownum() < 2;
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+--echo # Simple expression
+
+let $query=
+select * from (select a from t1 where a < 1000) as tt where rownum() <= 1+1;
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+--echo # Simple expression reversed
+
+let $query=
+select * from (select a from t1 where a < 1000) as tt where 1+1 >= rownum();
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+--echo # expensive (no opt)
+
+let $query=
+select * from (select a from t1 where a < 1000) as tt where (select max(a) from t1) >= rownum();
+eval $query;
+eval explain extended $query;
+eval prepare stmt from "$query";
+execute stmt;
+execute stmt;
+deallocate prepare stmt;
+
+drop table t1;
+
+--echo #
+--echo # Table value constructors
+--echo #
+values ("first row"),("next row is 3"),(rownum()),("next row is 5"),(rownum());
diff --git a/mysql-test/main/schema.result b/mysql-test/main/schema.result
index 95d5535e415..74a8bf9b562 100644
--- a/mysql-test/main/schema.result
+++ b/mysql-test/main/schema.result
@@ -10,6 +10,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
drop schema foo;
#
diff --git a/mysql-test/main/secure_file_priv_win.result b/mysql-test/main/secure_file_priv_win.result
index af402ae9537..418be1df711 100644
--- a/mysql-test/main/secure_file_priv_win.result
+++ b/mysql-test/main/secure_file_priv_win.result
@@ -1,8 +1,6 @@
CREATE TABLE t1 (c1 longtext);
INSERT INTO t1 values ('a');
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR/B11764517.tmp';
-Warnings:
-Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR/B11764517.tmp' FROM t1;
show global variables like 'secure_file_priv';
Variable_name Value
secure_file_priv MYSQL_TMP_DIR/
@@ -31,18 +29,10 @@ LOAD DATA INFILE 'MYSQL_TMP_DIR_UCASE/B11764517.tmp' INTO TABLE t1;
LOAD DATA INFILE 'MYSQL_TMP_DIR_LCASE/B11764517.tmp' INTO TABLE t1;
LOAD DATA INFILE "MYSQL_TMP_DIR\\..a..\\..\\..\\B11764517.tmp" into table t1;
ERROR HY000: The MariaDB server is running with the --secure-file-priv option so it cannot execute this statement
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR\\..a..\\..\\..\\B11764517-2.tmp';
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR\\..a..\\..\\..\\B11764517-2.tmp' FROM t1;
ERROR HY000: The MariaDB server is running with the --secure-file-priv option so it cannot execute this statement
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR\\B11764517-2.tmp';
-Warnings:
-Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR/B11764517-3.tmp';
-Warnings:
-Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR_UCASE/B11764517-4.tmp';
-Warnings:
-Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
-SELECT * FROM t1 INTO OUTFILE 'MYSQL_TMP_DIR_LCASE/B11764517-5.tmp';
-Warnings:
-Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR\\B11764517-2.tmp' FROM t1;
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR/B11764517-3.tmp' FROM t1;
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR_UCASE/B11764517-4.tmp' FROM t1;
+SELECT * INTO OUTFILE 'MYSQL_TMP_DIR_LCASE/B11764517-5.tmp' FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/main/secure_file_priv_win.test b/mysql-test/main/secure_file_priv_win.test
index a12510974ce..be5345dc161 100644
--- a/mysql-test/main/secure_file_priv_win.test
+++ b/mysql-test/main/secure_file_priv_win.test
@@ -14,7 +14,7 @@ LET $MYSQL_TMP_DIR_LCASE= `SELECT lower('$MYSQL_TMP_DIR')`;
#create the file
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR/B11764517.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR/B11764517.tmp' FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
show global variables like 'secure_file_priv';
@@ -52,19 +52,19 @@ eval LOAD DATA INFILE "$MYSQL_TMP_DIR\\\\..a..\\\\..\\\\..\\\\B11764517.tmp" int
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
--error ER_OPTION_PREVENTS_STATEMENT
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR\\\\..a..\\\\..\\\\..\\\\B11764517-2.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR\\\\..a..\\\\..\\\\..\\\\B11764517-2.tmp' FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR\\\\B11764517-2.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR\\\\B11764517-2.tmp' FROM t1;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR/B11764517-3.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR/B11764517-3.tmp' FROM t1;
--replace_result $MYSQL_TMP_DIR_UCASE MYSQL_TMP_DIR_UCASE
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR_UCASE/B11764517-4.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR_UCASE/B11764517-4.tmp' FROM t1;
--replace_result $MYSQL_TMP_DIR_LCASE MYSQL_TMP_DIR_LCASE
-eval SELECT * FROM t1 INTO OUTFILE '$MYSQL_TMP_DIR_LCASE/B11764517-5.tmp';
+eval SELECT * INTO OUTFILE '$MYSQL_TMP_DIR_LCASE/B11764517-5.tmp' FROM t1;
--error 0,1
--remove_file $MYSQL_TMP_DIR/B11764517.tmp;
diff --git a/mysql-test/main/select,ps.rdiff b/mysql-test/main/select,ps.rdiff
new file mode 100644
index 00000000000..7cbcd2be98e
--- /dev/null
+++ b/mysql-test/main/select,ps.rdiff
@@ -0,0 +1,12 @@
+--- mysql-test/main/select.result 2023-01-31 09:30:58.151377805 +0100
++++ mysql-test/main/select.reject 2023-02-01 13:44:11.026958614 +0100
+@@ -5661,6 +5661,8 @@
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1249 Select 2 was reduced during optimization
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1 and (1 or <expr_cache><`test`.`t1`.`a`>((/* select#3 */ select 3 from DUAL where `test`.`t1`.`a` = `test`.`t1`.`a`)) = 3)
+ PREPARE stmt FROM 'SELECT * FROM t1 WHERE a = 1 AND
+ (3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3))';
+
diff --git a/mysql-test/main/select.result b/mysql-test/main/select.result
index 35520d1bd23..99844d05f2a 100644
--- a/mysql-test/main/select.result
+++ b/mysql-test/main/select.result
@@ -2088,10 +2088,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/select.test b/mysql-test/main/select.test
index f7b379861e8..332b5a36aea 100644
--- a/mysql-test/main/select.test
+++ b/mysql-test/main/select.test
@@ -3,6 +3,7 @@
#
--source include/no_valgrind_without_big.inc
+--source include/protocol.inc
#
# Simple select test
@@ -2613,7 +2614,10 @@ SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
# this should work when sql_mode is not NO_BACKSLASH_ESCAPES
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan%' ESCAPE '';
+#enable after fix MDEV-29601
+--disable_service_connection
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan\%' ESCAPE '';
+--enable_service_connection
SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE 0x5c;
SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%';
SELECT * FROM BUG_12595 WHERE a LIKE 'ha\%an' ESCAPE '\\';
@@ -3541,7 +3545,9 @@ CREATE VIEW v1 AS SELECT 1 AS ` `;
--error 1166
CREATE VIEW v1 AS SELECT (SELECT 1 AS ` `);
+--enable_prepare_warnings
CREATE VIEW v1 AS SELECT 1 AS ` x`;
+--disable_prepare_warnings
SELECT `x` FROM v1;
--error 1166
@@ -4753,9 +4759,11 @@ INSERT INTO t1 VALUES (1),(2),(3);
SELECT * FROM t1 WHERE a = 1 AND
(3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3));
+--enable_prepare_warnings
EXPLAIN EXTENDED
SELECT * FROM t1 WHERE a = 1 AND
(3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3));
+--disable_prepare_warnings
PREPARE stmt FROM 'SELECT * FROM t1 WHERE a = 1 AND
(3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3))';
diff --git a/mysql-test/main/select_jcl6,ps.rdiff b/mysql-test/main/select_jcl6,ps.rdiff
new file mode 100644
index 00000000000..18652a0683b
--- /dev/null
+++ b/mysql-test/main/select_jcl6,ps.rdiff
@@ -0,0 +1,12 @@
+--- mysql-test/main/select_jcl6.result 2023-01-31 09:30:58.151377805 +0100
++++ mysql-test/main/select_jcl6.reject 2023-02-01 13:44:10.722958771 +0100
+@@ -5672,6 +5672,8 @@
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1249 Select 2 was reduced during optimization
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1 and (1 or <expr_cache><`test`.`t1`.`a`>((/* select#3 */ select 3 from DUAL where `test`.`t1`.`a` = `test`.`t1`.`a`)) = 3)
+ PREPARE stmt FROM 'SELECT * FROM t1 WHERE a = 1 AND
+ (3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3))';
+
diff --git a/mysql-test/main/select_jcl6.result b/mysql-test/main/select_jcl6.result
index 790e94488cf..a19e98d49a3 100644
--- a/mysql-test/main/select_jcl6.result
+++ b/mysql-test/main/select_jcl6.result
@@ -2099,10 +2099,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/select_pkeycache,ps.rdiff b/mysql-test/main/select_pkeycache,ps.rdiff
new file mode 100644
index 00000000000..320a402fefc
--- /dev/null
+++ b/mysql-test/main/select_pkeycache,ps.rdiff
@@ -0,0 +1,12 @@
+--- mysql-test/main/select_pkeycache.result 2023-01-31 09:30:58.151377805 +0100
++++ mysql-test/main/select_pkeycache.reject 2023-02-01 13:43:21.742985365 +0100
+@@ -5661,6 +5661,8 @@
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1249 Select 2 was reduced during optimization
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
++Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1
+ Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1 and (1 or <expr_cache><`test`.`t1`.`a`>((/* select#3 */ select 3 from DUAL where `test`.`t1`.`a` = `test`.`t1`.`a`)) = 3)
+ PREPARE stmt FROM 'SELECT * FROM t1 WHERE a = 1 AND
+ (3 = 0 OR (SELECT a = 1 OR (SELECT 3 WHERE a = a) = 3))';
+
diff --git a/mysql-test/main/select_pkeycache.result b/mysql-test/main/select_pkeycache.result
index 35520d1bd23..99844d05f2a 100644
--- a/mysql-test/main/select_pkeycache.result
+++ b/mysql-test/main/select_pkeycache.result
@@ -2088,10 +2088,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/selectivity.result b/mysql-test/main/selectivity.result
index 25caa02da3e..1143a4deb46 100644
--- a/mysql-test/main/selectivity.result
+++ b/mysql-test/main/selectivity.result
@@ -326,8 +326,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index
Warnings:
@@ -360,8 +360,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL i_l_orderkey_quantity 13 NULL 6005 100.00 Using index
Warnings:
diff --git a/mysql-test/main/selectivity_innodb.result b/mysql-test/main/selectivity_innodb.result
index ea7afc08bb3..e909e85a2c8 100644
--- a/mysql-test/main/selectivity_innodb.result
+++ b/mysql-test/main/selectivity_innodb.result
@@ -1,6 +1,8 @@
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
set @save_optimizer_switch_for_selectivity_test=@@optimizer_switch;
set optimizer_switch='extended_keys=on';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
drop table if exists t0,t1,t2,t3;
select @@global.use_stat_tables;
@@global.use_stat_tables
@@ -329,8 +331,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00
Warnings:
@@ -363,8 +365,8 @@ group by c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice
order by o_totalprice desc, o_orderdate;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY orders ALL PRIMARY,i_o_custkey NULL NULL NULL 1500 100.00 Using where; Using temporary; Using filesort
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY customer eq_ref PRIMARY PRIMARY 4 dbt3_s001.orders.o_custkey 1 100.00
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 dbt3_s001.orders.o_orderkey 1 100.00
1 PRIMARY lineitem ref PRIMARY,i_l_orderkey,i_l_orderkey_quantity i_l_orderkey_quantity 4 dbt3_s001.orders.o_orderkey 4 100.00 Using index
2 MATERIALIZED lineitem index NULL PRIMARY 8 NULL 6005 100.00
Warnings:
@@ -2159,3 +2161,4 @@ set use_stat_tables= @tmp_ust;
set optimizer_use_condition_selectivity= @tmp_oucs;
set @@global.histogram_size=@save_histogram_size;
SET SESSION DEFAULT_STORAGE_ENGINE=DEFAULT;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/selectivity_innodb.test b/mysql-test/main/selectivity_innodb.test
index 4bcdb5d6ec9..c970e7d871d 100644
--- a/mysql-test/main/selectivity_innodb.test
+++ b/mysql-test/main/selectivity_innodb.test
@@ -7,6 +7,8 @@ SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
set @save_optimizer_switch_for_selectivity_test=@@optimizer_switch;
set optimizer_switch='extended_keys=on';
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
--source selectivity.test
@@ -233,3 +235,4 @@ set use_stat_tables= @tmp_ust;
set optimizer_use_condition_selectivity= @tmp_oucs;
set @@global.histogram_size=@save_histogram_size;
SET SESSION DEFAULT_STORAGE_ENGINE=DEFAULT;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/selectivity_no_engine.result b/mysql-test/main/selectivity_no_engine.result
index b6830e91f61..3811b12a1be 100644
--- a/mysql-test/main/selectivity_no_engine.result
+++ b/mysql-test/main/selectivity_no_engine.result
@@ -312,7 +312,7 @@ EXPLAIN
SELECT * FROM t1 AS a NATURAL JOIN t1 AS b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ALL NULL NULL NULL NULL 5 Using where
-1 SIMPLE b hash_ALL NULL #hash#$hj 612 test.a.Host,test.a.User,test.a.Password,test.a.Select_priv,test.a.Insert_priv,test.a.Update_priv,test.a.Delete_priv,test.a.Create_priv,test.a.Drop_priv,test.a.Reload_priv,test.a.Shutdown_priv,test.a.Process_priv,test.a.File_priv,test.a.Grant_priv,test.a.References_priv,test.a.Index_priv,test.a.Alter_priv,test.a.Show_db_priv,test.a.Super_priv,test.a.Create_tmp_table_priv,test.a.Lock_tables_priv,test.a.Execute_priv,test.a.Repl_slave_priv,test.a.Repl_client_priv,test.a.Create_view_priv,test.a.Show_view_priv,test.a.Create_routine_priv,test.a.Alter_routine_priv,test.a.Create_user_priv,test.a.Event_priv,test.a.Trigger_priv,test.a.Create_tablespace_priv,test.a.Delete_history_priv,test.a.ssl_type,test.a.ssl_cipher,test.a.x509_issuer,test.a.x509_subject,test.a.max_questions,test.a.max_updates,test.a.max_connections,test.a.max_user_connections,test.a.plugin,test.a.authentication_string,test.a.password_expired,test.a.is_role,test.a.default_role,test.a.max_statement_time 5 Using where; Using join buffer (flat, BNLH join)
+1 SIMPLE b hash_ALL NULL #hash#$hj 1341 test.a.Host,test.a.User,test.a.Password,test.a.Select_priv,test.a.Insert_priv,test.a.Update_priv,test.a.Delete_priv,test.a.Create_priv,test.a.Drop_priv,test.a.Reload_priv,test.a.Shutdown_priv,test.a.Process_priv,test.a.File_priv,test.a.Grant_priv,test.a.References_priv,test.a.Index_priv,test.a.Alter_priv,test.a.Show_db_priv,test.a.Super_priv,test.a.Create_tmp_table_priv,test.a.Lock_tables_priv,test.a.Execute_priv,test.a.Repl_slave_priv,test.a.Repl_client_priv,test.a.Create_view_priv,test.a.Show_view_priv,test.a.Create_routine_priv,test.a.Alter_routine_priv,test.a.Create_user_priv,test.a.Event_priv,test.a.Trigger_priv,test.a.Create_tablespace_priv,test.a.Delete_history_priv,test.a.ssl_type,test.a.ssl_cipher,test.a.x509_issuer,test.a.x509_subject,test.a.max_questions,test.a.max_updates,test.a.max_connections,test.a.max_user_connections,test.a.plugin,test.a.authentication_string,test.a.password_expired,test.a.is_role,test.a.default_role,test.a.max_statement_time 5 Using where; Using join buffer (flat, BNLH join)
DROP TABLE t1,t2,t3;
#
# End of the test file
diff --git a/mysql-test/main/show_check.result b/mysql-test/main/show_check.result
index a68be20b997..26c96a5114b 100644
--- a/mysql-test/main/show_check.result
+++ b/mysql-test/main/show_check.result
@@ -76,10 +76,11 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 3 0 N 4097 0 8
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 16 5 N 4097 0 8
def information_schema STATISTICS STATISTICS COMMENT Comment 253 16 0 Y 4096 0 8
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 1024 0 N 4097 0 8
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
-t1 1 b 2 c A 5 NULL NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORED Ignored 253 3 2 N 4097 0 8
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
+t1 1 b 2 c A 5 NULL NULL BTREE NO
insert into t1 values (5,5,5);
ERROR 23000: Duplicate entry '5' for key 'PRIMARY'
-- Here we enable metadata just to check that the collation of the
@@ -148,6 +149,7 @@ information_schema
mtr
mysql
performance_schema
+sys
test
show databases like "test%";
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
@@ -169,11 +171,11 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
-t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
-t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
-t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE NO
+t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE NO
+t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE NO
+t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE NO
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
@@ -186,11 +188,11 @@ def Msg_text 250 393216 2 Y 0 39 8
Table Op Msg_type Msg_text
test.t1 repair status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
-t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
-t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
-t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE NO
+t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE NO
+t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE NO
+t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE NO
drop table t1;
create temporary table t1 (a int not null);
show create table t1;
@@ -660,8 +662,9 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 3 0 N 4097 0 63
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 16 5 N 4097 0 63
def information_schema STATISTICS STATISTICS COMMENT Comment 253 16 0 Y 4096 0 63
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 1024 0 N 4097 0 63
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORED Ignored 253 3 2 N 4097 0 63
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE NO
drop table t1;
create table t1 (
c1 int NOT NULL,
@@ -872,14 +875,14 @@ set names utf8;
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
----------------------------------------------------------------
-SHOW CHARACTER SET LIKE 'utf8';
+SHOW CHARACTER SET LIKE 'utf8mb3';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
-def information_schema CHARACTER_SETS CHARACTER_SETS CHARACTER_SET_NAME Charset 253 96 4 N 4097 0 33
+def information_schema CHARACTER_SETS CHARACTER_SETS CHARACTER_SET_NAME Charset 253 96 7 N 4097 0 33
def information_schema CHARACTER_SETS CHARACTER_SETS DESCRIPTION Description 253 180 13 N 4097 0 33
-def information_schema CHARACTER_SETS CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 96 15 N 4097 0 33
+def information_schema CHARACTER_SETS CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 96 18 N 4097 0 33
def information_schema CHARACTER_SETS CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 36865 0 63
Charset Description Default collation Maxlen
-utf8 UTF-8 Unicode utf8_general_ci 3
+utf8mb3 UTF-8 Unicode utf8mb3_general_ci 3
----------------------------------------------------------------
SHOW COLLATION LIKE 'latin1_bin';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
@@ -930,8 +933,9 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 9 0 N 4097 0 33
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 48 5 N 4097 0 33
def information_schema STATISTICS STATISTICS COMMENT Comment 253 48 0 Y 4096 0 33
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 3072 0 N 4097 0 33
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 c A 0 NULL NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORED Ignored 253 9 2 N 4097 0 33
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 c A 0 NULL NULL BTREE NO
----------------------------------------------------------------
SELECT
TABLE_CATALOG,
@@ -1019,7 +1023,7 @@ def information_schema TRIGGERS TRIGGERS ACTION_STATEMENT Statement 252 589815 1
def information_schema TRIGGERS TRIGGERS ACTION_TIMING Timing 253 18 6 N 4097 0 33
def information_schema TRIGGERS TRIGGERS CREATED Created 12 22 22 Y 4224 2 63
def information_schema TRIGGERS TRIGGERS SQL_MODE sql_mode 253 24576 89 N 4097 0 33
-def information_schema TRIGGERS TRIGGERS DEFINER Definer 253 567 14 N 4097 0 33
+def information_schema TRIGGERS TRIGGERS DEFINER Definer 253 1152 14 N 4097 0 33
def information_schema TRIGGERS TRIGGERS CHARACTER_SET_CLIENT character_set_client 253 96 6 N 4097 0 33
def information_schema TRIGGERS TRIGGERS COLLATION_CONNECTION collation_connection 253 96 6 N 4097 0 33
def information_schema TRIGGERS TRIGGERS DATABASE_COLLATION Database Collation 253 96 17 N 4097 0 33
@@ -1063,7 +1067,7 @@ def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_NEW_TABLE ACTION_REFER
def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_OLD_ROW 253 9 3 N 4097 0 33
def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_NEW_ROW ACTION_REFERENCE_NEW_ROW 253 9 3 N 4097 0 33
def information_schema TRIGGERS TRIGGERS SQL_MODE SQL_MODE 253 24576 89 N 4097 0 33
-def information_schema TRIGGERS TRIGGERS DEFINER DEFINER 253 567 14 N 4097 0 33
+def information_schema TRIGGERS TRIGGERS DEFINER DEFINER 253 1152 14 N 4097 0 33
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW SQL_MODE DEFINER
def test t1_bi INSERT def test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost
SELECT CREATED FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name='t1_bi';
@@ -1091,7 +1095,7 @@ def information_schema VIEWS VIEWS TABLE_NAME TABLE_NAME 253 192 2 N 4097 0 33
def information_schema VIEWS VIEWS VIEW_DEFINITION VIEW_DEFINITION 252 589815 15 N 4113 0 33
def information_schema VIEWS VIEWS CHECK_OPTION CHECK_OPTION 253 24 4 N 4097 0 33
def information_schema VIEWS VIEWS IS_UPDATABLE IS_UPDATABLE 253 9 2 N 4097 0 33
-def information_schema VIEWS VIEWS DEFINER DEFINER 253 567 14 N 4097 0 33
+def information_schema VIEWS VIEWS DEFINER DEFINER 253 1152 14 N 4097 0 33
def information_schema VIEWS VIEWS SECURITY_TYPE SECURITY_TYPE 253 21 7 N 4097 0 33
def information_schema VIEWS VIEWS CHARACTER_SET_CLIENT CHARACTER_SET_CLIENT 253 96 6 N 4097 0 33
def information_schema VIEWS VIEWS COLLATION_CONNECTION COLLATION_CONNECTION 253 96 6 N 4097 0 33
@@ -1150,7 +1154,7 @@ def information_schema ROUTINES ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 4096 0 33
def information_schema ROUTINES ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 4097 0 33
def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 89 N 4097 0 33
def information_schema ROUTINES ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 252 589815 0 N 4113 0 33
-def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 567 14 N 4097 0 33
+def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 1152 14 N 4097 0 33
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
p1 def test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost
----------------------------------------------------------------
@@ -1205,7 +1209,7 @@ def information_schema ROUTINES ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 4096 0 33
def information_schema ROUTINES ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 4097 0 33
def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 89 N 4097 0 33
def information_schema ROUTINES ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 252 589815 0 N 4113 0 33
-def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 567 14 N 4097 0 33
+def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 1152 14 N 4097 0 33
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
f1 def test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost
----------------------------------------------------------------
@@ -1262,7 +1266,7 @@ PRIMARY KEY (Codigo)
show create table t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def Table 253 192 2 N 1 39 33
-def Create Table 253 3072 482 N 1 39 33
+def Create Table 253 3072 488 N 1 39 33
Table Create Table
t1 CREATE TABLE `t1` (
`Codigo` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -1275,7 +1279,7 @@ t1 CREATE TABLE `t1` (
`Provincia` varchar(255) DEFAULT NULL,
`Poblacion` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Codigo`)
-) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
+) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
drop table t1;
End of 5.0 tests
SHOW AUTHORS;
@@ -1312,7 +1316,7 @@ show columns from `a\b` from `mysqlttest\1`;
Field Type Null Key Default Extra
a int(11) YES NULL
show keys from `mysqlttest\1`.`a\b`;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
drop table `mysqlttest\1`.`a\b`;
drop database `mysqlttest\1`;
show engine foobar status;
@@ -1528,7 +1532,7 @@ LOCK TABLE t1 WRITE;
connection default;
SHOW CREATE TRIGGER t1_bi;
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
-t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci #
+t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci #
connection con1;
UNLOCK TABLES;
# Test 2: ALTER TABLE with SHOW CREATE TRIGGER in transaction
@@ -1536,7 +1540,7 @@ connection default;
START TRANSACTION;
SHOW CREATE TRIGGER t1_bi;
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created
-t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci #
+t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8mb3 utf8mb3_general_ci latin1_swedish_ci #
connection con1;
ALTER TABLE t1 CHARACTER SET = utf8;
disconnect con1;
diff --git a/mysql-test/main/show_check.test b/mysql-test/main/show_check.test
index 38bcb5f14e7..15beaaf0401 100644
--- a/mysql-test/main/show_check.test
+++ b/mysql-test/main/show_check.test
@@ -719,7 +719,7 @@ set names utf8;
--echo ----------------------------------------------------------------
--disable_ps_protocol
-SHOW CHARACTER SET LIKE 'utf8';
+SHOW CHARACTER SET LIKE 'utf8mb3';
--enable_ps_protocol
--echo ----------------------------------------------------------------
diff --git a/mysql-test/main/show_explain.result b/mysql-test/main/show_explain.result
index 69dc506527b..6ad93930448 100644
--- a/mysql-test/main/show_explain.result
+++ b/mysql-test/main/show_explain.result
@@ -714,10 +714,10 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1003 SHOW INDEX FROM t1
connection con1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
-t1 1 c 1 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 c 1 c A NULL NULL NULL YES BTREE NO
SET debug_dbug=@old_debug;
DROP TABLE t1;
#
diff --git a/mysql-test/main/show_explain.test b/mysql-test/main/show_explain.test
index 544407b0edc..9ccf344a782 100644
--- a/mysql-test/main/show_explain.test
+++ b/mysql-test/main/show_explain.test
@@ -8,7 +8,8 @@
--source include/have_debug.inc
--source include/have_debug_sync.inc
--source include/have_innodb.inc
-
+# Using valgrind can cause 'reap' to fail. See comment below
+--source include/not_valgrind.inc
--disable_warnings
drop table if exists t0, t1, t2, t3, t4;
@@ -890,6 +891,7 @@ let $wait_condition= select State='show explain' from information_schema.process
evalp kill query $thr_default;
connection default;
+# This may fail when using valgrind
--error ER_QUERY_INTERRUPTED
reap;
diff --git a/mysql-test/main/show_function_with_pad_char_to_full_length.result b/mysql-test/main/show_function_with_pad_char_to_full_length.result
index 785cab7b3e6..c520fee3ffd 100644
--- a/mysql-test/main/show_function_with_pad_char_to_full_length.result
+++ b/mysql-test/main/show_function_with_pad_char_to_full_length.result
@@ -1,9 +1,9 @@
create function f() returns int return 1;
-show function status;
+show function status where db='test';
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
T f T T T T T T T T T
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
-show function status;
+show function status where db='test';
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
T f T T T T T T T T T
drop function f;
diff --git a/mysql-test/main/show_function_with_pad_char_to_full_length.test b/mysql-test/main/show_function_with_pad_char_to_full_length.test
index f47f36294d4..81e82118786 100644
--- a/mysql-test/main/show_function_with_pad_char_to_full_length.test
+++ b/mysql-test/main/show_function_with_pad_char_to_full_length.test
@@ -6,10 +6,10 @@
create function f() returns int return 1;
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
-show function status;
+show function status where db='test';
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
--replace_column 1 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T
-show function status;
+show function status where db='test';
drop function f;
select @@sql_mode;
diff --git a/mysql-test/main/signal.result b/mysql-test/main/signal.result
index b5b479db017..6a7f1c1e750 100644
--- a/mysql-test/main/signal.result
+++ b/mysql-test/main/signal.result
@@ -561,9 +561,7 @@ ERROR 42000: Bad SQLSTATE: '00001'
# PART 2: non preparable statements
#
prepare stmt from 'SIGNAL SQLSTATE \'23000\'';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
prepare stmt from 'RESIGNAL SQLSTATE \'23000\'';
-ERROR HY000: This command is not supported in the prepared statement protocol yet
#
# PART 3: runtime execution
#
diff --git a/mysql-test/main/signal.test b/mysql-test/main/signal.test
index 22cfc080895..97cd4d9a5d0 100644
--- a/mysql-test/main/signal.test
+++ b/mysql-test/main/signal.test
@@ -669,10 +669,7 @@ delimiter ;$$
--echo # PART 2: non preparable statements
--echo #
---error ER_UNSUPPORTED_PS
prepare stmt from 'SIGNAL SQLSTATE \'23000\'';
-
---error ER_UNSUPPORTED_PS
prepare stmt from 'RESIGNAL SQLSTATE \'23000\'';
--echo #
diff --git a/mysql-test/main/signal_demo1.test b/mysql-test/main/signal_demo1.test
index 62020b8f3fd..ff6a4437cdf 100644
--- a/mysql-test/main/signal_demo1.test
+++ b/mysql-test/main/signal_demo1.test
@@ -67,6 +67,8 @@ delimiter $$;
--echo # Schema integrity enforcement
--echo #
+--enable_prepare_warnings
+
create procedure check_pk_person(in person_type char, in id integer)
begin
declare x integer;
@@ -158,6 +160,8 @@ begin
end
$$
+--disable_prepare_warnings
+
create trigger po_order_bi before insert on po_order
for each row
begin
diff --git a/mysql-test/main/skip_grants.result b/mysql-test/main/skip_grants.result
index a8633807571..f21bfa1da41 100644
--- a/mysql-test/main/skip_grants.result
+++ b/mysql-test/main/skip_grants.result
@@ -52,8 +52,6 @@ DROP FUNCTION f3;
# Bug #26807 "set global event_scheduler=1" and --skip-grant-tables crashes server
#
set global event_scheduler=1;
-Warnings:
-Note 1408 Event Scheduler: Loaded 0 events
set global event_scheduler=0;
#
# Bug#26285 Selecting information_schema crahes server
diff --git a/mysql-test/main/skip_grants.test b/mysql-test/main/skip_grants.test
index eb8d3c3df88..7594285aed7 100644
--- a/mysql-test/main/skip_grants.test
+++ b/mysql-test/main/skip_grants.test
@@ -1,6 +1,6 @@
# This tests not performed with embedded server
-- source include/not_embedded.inc
-
+-- disable_ps_protocol
use test;
#
@@ -92,7 +92,9 @@ DROP FUNCTION f3;
--echo #
--echo # Bug #26807 "set global event_scheduler=1" and --skip-grant-tables crashes server
--echo #
+--disable_warnings
set global event_scheduler=1;
+--enable_warnings
set global event_scheduler=0;
--echo #
@@ -161,6 +163,8 @@ drop user baz@baz;
# need to restart the server to restore the --skip-grant state
--source include/restart_mysqld.inc
+--enable_ps_protocol
+
--echo #
--echo # End of 10.3 tests
--echo #
diff --git a/mysql-test/main/sp-anchor-row-type-cursor.test b/mysql-test/main/sp-anchor-row-type-cursor.test
index 7089175507c..bf4b6968458 100644
--- a/mysql-test/main/sp-anchor-row-type-cursor.test
+++ b/mysql-test/main/sp-anchor-row-type-cursor.test
@@ -1006,6 +1006,7 @@ DROP TABLE t1;
--echo # SELECT INTO + cursor ROW TYPE variable with a wrong column count
--echo #
+--enable_prepare_warnings
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
DELIMITER $$;
@@ -1068,6 +1069,8 @@ CALL p1();
DROP TABLE t1;
DROP PROCEDURE p1;
+--disable_prepare_warnings
+
--echo #
--echo # End of MDEV-12461 TYPE OF and ROW TYPE OF anchored data types
--echo #
diff --git a/mysql-test/main/sp-anchor-row-type-table.test b/mysql-test/main/sp-anchor-row-type-table.test
index 3f04dc68586..33b2d7487a4 100644
--- a/mysql-test/main/sp-anchor-row-type-table.test
+++ b/mysql-test/main/sp-anchor-row-type-table.test
@@ -11,6 +11,8 @@
--echo # Referring to a table in a non-existing database
--echo #
+--enable_prepare_warnings
+
DELIMITER $$;
CREATE PROCEDURE p1()
BEGIN
@@ -881,3 +883,4 @@ END;
$$
DELIMITER ;$$
DROP TABLE t1;
+--disable_prepare_warnings
diff --git a/mysql-test/main/sp-anchor-type.result b/mysql-test/main/sp-anchor-type.result
index 985a8c8f6db..73699d7ed03 100644
--- a/mysql-test/main/sp-anchor-type.result
+++ b/mysql-test/main/sp-anchor-type.result
@@ -464,7 +464,7 @@ t2 CREATE TABLE `t2` (
`dc209` decimal(20,9) DEFAULT NULL,
`cc` char(10) DEFAULT NULL,
`cv` varchar(10) DEFAULT NULL,
- `cvu` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `cvu` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`t1` tinytext DEFAULT NULL,
`t2` text DEFAULT NULL,
`t3` mediumtext DEFAULT NULL,
@@ -626,7 +626,7 @@ t2 CREATE TABLE `t2` (
`dc209` decimal(20,9) DEFAULT NULL,
`cc` char(10) DEFAULT NULL,
`cv` varchar(10) DEFAULT NULL,
- `cvu` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `cvu` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`t1` tinytext DEFAULT NULL,
`t2` text DEFAULT NULL,
`t3` mediumtext DEFAULT NULL,
@@ -824,9 +824,9 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `tables_table_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `tables_table_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`tables_table_rows` bigint(21) unsigned DEFAULT NULL,
- `processlist_info` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `processlist_info` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`processlist_info_binary` blob DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
diff --git a/mysql-test/main/sp-anchor-type.test b/mysql-test/main/sp-anchor-type.test
index 7395286ca66..0e24ef900d8 100644
--- a/mysql-test/main/sp-anchor-type.test
+++ b/mysql-test/main/sp-anchor-type.test
@@ -663,6 +663,7 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT, b VARCHAR(10),c DATETIME(3));
INSERT INTO t1 VALUES (1,'b1','2001-01-01 10:20:30.123');
DELIMITER $$;
+--enable_prepare_warnings
CREATE PROCEDURE p1()
BEGIN
DECLARE v_a TYPE OF t1.a;
@@ -673,6 +674,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
CALL p1();
DROP PROCEDURE p1;
DROP TABLE t1;
diff --git a/mysql-test/main/sp-big.test b/mysql-test/main/sp-big.test
index 043e737105a..ff091c0a883 100644
--- a/mysql-test/main/sp-big.test
+++ b/mysql-test/main/sp-big.test
@@ -8,6 +8,7 @@ insert into t1 values (1),(2),(3);
let $body=`select repeat('select count(*) into out1 from t1;\n', 3072)`;
+--enable_prepare_warnings
delimiter //;
--disable_query_log
eval select length('$body') as length//
@@ -16,6 +17,7 @@ begin
$body
end//
--enable_query_log
+--disable_prepare_warnings
delimiter ;//
@@ -98,6 +100,7 @@ create table t1 (
) default collate=latin1_bin;
delimiter //;
+--enable_prepare_warnings
create procedure select_test()
begin
declare id1_cond int;
@@ -107,6 +110,7 @@ begin
set id1_cond = id1_cond + 1;
end while;
end//
+--disable_prepare_warnings
delimiter ;//
insert t1 select seq, seq, 1, 1, seq, seq, seq from seq_1_to_2000;
diff --git a/mysql-test/main/sp-cursor.result b/mysql-test/main/sp-cursor.result
index b1c2b335ea4..230bf8c66ef 100644
--- a/mysql-test/main/sp-cursor.result
+++ b/mysql-test/main/sp-cursor.result
@@ -800,3 +800,15 @@ drop procedure test_proc;
drop view v1;
drop function get_name;
drop table t1;
+#
+# MDEV-28266: Crash in Field_string::type_handler when calling procedures
+#
+CREATE TABLE t (f INT);
+CREATE TRIGGER tr AFTER INSERT ON t FOR EACH ROW
+FOR x IN (SELECT * FROM json_table(NULL, '$' COLUMNS(a CHAR(1) path '$.*')) tmp)
+DO set @a=1; END FOR $
+INSERT INTO t () values ();
+DROP TABLE t;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/sp-cursor.test b/mysql-test/main/sp-cursor.test
index 9794815c784..c95d59b1d3b 100644
--- a/mysql-test/main/sp-cursor.test
+++ b/mysql-test/main/sp-cursor.test
@@ -800,3 +800,24 @@ drop procedure test_proc;
drop view v1;
drop function get_name;
drop table t1;
+
+--echo #
+--echo # MDEV-28266: Crash in Field_string::type_handler when calling procedures
+--echo #
+
+CREATE TABLE t (f INT);
+
+--delimiter $
+CREATE TRIGGER tr AFTER INSERT ON t FOR EACH ROW
+ FOR x IN (SELECT * FROM json_table(NULL, '$' COLUMNS(a CHAR(1) path '$.*')) tmp)
+ DO set @a=1; END FOR $
+--delimiter ;
+
+INSERT INTO t () values ();
+
+# Cleanup
+DROP TABLE t;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/sp-dynamic.result b/mysql-test/main/sp-dynamic.result
index 9fa3bea1108..ad11763b523 100644
--- a/mysql-test/main/sp-dynamic.result
+++ b/mysql-test/main/sp-dynamic.result
@@ -64,9 +64,8 @@ execute stmt;
deallocate prepare stmt;
end|
call p1()|
-ERROR HY000: This command is not supported in the prepared statement protocol yet
call p1()|
-ERROR HY000: This command is not supported in the prepared statement protocol yet
+ERROR 42000: PROCEDURE p2 already exists
drop procedure p1|
create procedure p1()
begin
@@ -75,9 +74,8 @@ execute stmt;
deallocate prepare stmt;
end|
call p1()|
-ERROR HY000: This command is not supported in the prepared statement protocol yet
call p1()|
-ERROR HY000: This command is not supported in the prepared statement protocol yet
+ERROR 42000: PROCEDURE test.p2 does not exist
drop procedure p1|
create procedure p1()
begin
@@ -295,15 +293,15 @@ select * from t1|
id stmt_text status
1 select 1 supported
2 flush tables supported
-3 handler t1 open as ha not supported
+3 handler t1 open as ha supported
4 analyze table t1 supported
-5 check table t1 not supported
+5 check table t1 supported
6 checksum table t1 supported
-7 check table t1 not supported
+7 check table t1 supported
8 optimize table t1 supported
9 repair table t1 supported
10 describe extended select * from t1 supported
-11 help help not supported
+11 help help supported
12 show databases supported
13 show tables supported
14 show table status supported
@@ -316,7 +314,7 @@ id stmt_text status
21 call p1() supported
22 foo bar syntax error
23 create view v1 as select 1 supported
-24 alter view v1 as select 2 not supported
+24 alter view v1 as select 2 supported
25 drop view v1 supported
26 create table t2 (a int) supported
27 alter table t2 add (b int) supported
diff --git a/mysql-test/main/sp-dynamic.test b/mysql-test/main/sp-dynamic.test
index 3a467e26818..5749a83a27b 100644
--- a/mysql-test/main/sp-dynamic.test
+++ b/mysql-test/main/sp-dynamic.test
@@ -68,9 +68,8 @@ begin
execute stmt;
deallocate prepare stmt;
end|
---error ER_UNSUPPORTED_PS
call p1()|
---error ER_UNSUPPORTED_PS
+--error ER_SP_ALREADY_EXISTS
call p1()|
drop procedure p1|
create procedure p1()
@@ -79,9 +78,8 @@ begin
execute stmt;
deallocate prepare stmt;
end|
---error ER_UNSUPPORTED_PS
call p1()|
---error ER_UNSUPPORTED_PS
+--error ER_SP_DOES_NOT_EXIST
call p1()|
drop procedure p1|
#
diff --git a/mysql-test/main/sp-error.result b/mysql-test/main/sp-error.result
index f64735f8006..3832d63c073 100644
--- a/mysql-test/main/sp-error.result
+++ b/mysql-test/main/sp-error.result
@@ -2771,7 +2771,7 @@ DROP TABLE t2;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
-SET sql_mode = '';
+SET sql_mode = ''|
CREATE PROCEDURE p1()
BEGIN
DECLARE var1 INTEGER DEFAULT 'string';
@@ -2782,7 +2782,7 @@ CALL p1()|
Warnings:
Warning 1366 Incorrect integer value: 'string' for column ``.``.`var1` at row 1
-SET sql_mode = DEFAULT;
+SET sql_mode = DEFAULT|
CREATE PROCEDURE p2()
BEGIN
DECLARE EXIT HANDLER FOR SQLWARNING SELECT 'H2';
diff --git a/mysql-test/main/sp-error.test b/mysql-test/main/sp-error.test
index 66e31a3126f..8bd70358c9f 100644
--- a/mysql-test/main/sp-error.test
+++ b/mysql-test/main/sp-error.test
@@ -9,9 +9,10 @@ drop table if exists t1, t2;
--enable_warnings
# Backup the mysql.proc table
+--enable_prepare_warnings
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval SELECT * FROM mysql.proc INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/proc.txt';
-
+--disable_prepare_warnings
# Make sure we don't have any procedures left.
delete from mysql.proc;
@@ -42,8 +43,10 @@ drop table if exists t3|
create table t3 ( x int )|
insert into t3 values (2), (3)|
+--enable_prepare_warnings
create procedure bad_into(out param int)
select x from t3 into param|
+--disable_prepare_warnings
--error 1172
call bad_into(@x)|
@@ -3713,7 +3716,7 @@ DROP PROCEDURE IF EXISTS p2;
delimiter |;
-SET sql_mode = '';
+SET sql_mode = ''|
CREATE PROCEDURE p1()
BEGIN
DECLARE var1 INTEGER DEFAULT 'string';
@@ -3723,7 +3726,7 @@ END|
--echo
CALL p1()|
--echo
-SET sql_mode = DEFAULT;
+SET sql_mode = DEFAULT|
CREATE PROCEDURE p2()
BEGIN
@@ -3799,12 +3802,14 @@ delimiter |;
--echo # because SIGNAL would raise SQL-error in that case.
--echo
+--enable_prepare_warnings
CREATE FUNCTION f1() RETURNS INTEGER
BEGIN
DECLARE v VARCHAR(5) DEFAULT -1;
SELECT b FROM t1 WHERE a = 2 INTO v;
RETURN v;
END|
+--disable_prepare_warnings
--echo
--echo # Here we check that the NOT_FOUND condition raised in f1()
diff --git a/mysql-test/main/sp-row.result b/mysql-test/main/sp-row.result
index e30514a1cb0..36a371d8c04 100644
--- a/mysql-test/main/sp-row.result
+++ b/mysql-test/main/sp-row.result
@@ -228,6 +228,7 @@ CREATE FUNCTION f1(a INT) RETURNS INT
BEGIN
RETURN a;
END;
+$$
CREATE PROCEDURE p1()
BEGIN
DECLARE a ROW (a INT,b INT);
@@ -743,9 +744,9 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `rec1.a` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec2.a` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec3.a` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `rec1.a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec2.a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec3.a` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -1835,8 +1836,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -1875,8 +1876,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -1885,8 +1886,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `rec.var` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
+ `var` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `rec.var` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -2084,8 +2085,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -2094,8 +2095,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` tinytext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` tinytext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -2104,8 +2105,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
@@ -2114,8 +2115,8 @@ CALL p1();
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `var` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `rec.var` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `var` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `rec.var` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP PROCEDURE p1;
diff --git a/mysql-test/main/sp-row.test b/mysql-test/main/sp-row.test
index b9143b1113b..527ff9455bd 100644
--- a/mysql-test/main/sp-row.test
+++ b/mysql-test/main/sp-row.test
@@ -2,8 +2,6 @@
--echo # MDEV-10914 ROW data type for stored routine variables
--echo #
-
-
--echo #
--echo # ROW of ROWs is not supported yet
--echo #
@@ -301,6 +299,7 @@ CREATE FUNCTION f1(a INT) RETURNS INT
BEGIN
RETURN a;
END;
+$$
CREATE PROCEDURE p1()
BEGIN
DECLARE a ROW (a INT,b INT);
@@ -1337,6 +1336,7 @@ DROP PROCEDURE p1;
--echo # ROW variable with a wrong column count
+--enable_prepare_warnings
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
DELIMITER $$;
@@ -1348,6 +1348,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
--error ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
CALL p1();
DROP TABLE t1;
@@ -1357,6 +1358,7 @@ DROP PROCEDURE p1;
--echo # Multiple ROW variables
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
+--enable_prepare_warnings
DELIMITER $$;
CREATE PROCEDURE p1()
BEGIN
@@ -1366,6 +1368,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
--error ER_OPERAND_COLUMNS
CALL p1();
DROP TABLE t1;
@@ -1375,6 +1378,7 @@ DROP PROCEDURE p1;
--echo # ROW variables working example
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
+--enable_prepare_warnings
DELIMITER $$;
CREATE PROCEDURE p1()
BEGIN
@@ -1384,6 +1388,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
CALL p1();
DROP TABLE t1;
DROP PROCEDURE p1;
diff --git a/mysql-test/main/sp-security.result b/mysql-test/main/sp-security.result
index 0b21d2b1c2e..5c62a95b34a 100644
--- a/mysql-test/main/sp-security.result
+++ b/mysql-test/main/sp-security.result
@@ -347,6 +347,7 @@ create function bug12812() returns char(2)
begin
return 'ok';
end;
+|
create user user_bug12812@localhost IDENTIFIED BY 'ABC'|
connect test_user_12812,localhost,user_bug12812,ABC,test;
SELECT test.bug12812()|
@@ -658,7 +659,9 @@ USE test;
DROP USER 'tester';
DROP USER 'Tester';
DROP DATABASE B48872;
-End of 5.0 tests.
+#
+# End of 5.0 tests.
+#
#
# Test for bug#57061 "User without privilege on routine can discover
# its existence."
@@ -803,7 +806,7 @@ DROP DATABASE u1;
DROP USER u1@localhost;
set @@global.character_set_server=@save_character_set_server;
#
-# Start of 10.5 tests
+# End of 10.2 tests
#
#
# MDEV-20366 Server crashes in get_current_user upon SET PASSWORD via SP
@@ -820,3 +823,17 @@ DROP USER foo@localhost;
#
# End of 10.5 tests
#
+#
+# MDEV-29852 SIGSEGV in mysql_create_routine or is_acl_user on 2nd execution, ASAN use-after-poison in get_current_user (sql_acl.cc)
+#
+set @cmd:="create definer=u function f(i int) returns char binary reads sql data return concat (1,i)";
+prepare s from @cmd;
+execute s;
+Warnings:
+Note 1449 The user specified as a definer ('u'@'%') does not exist
+execute s;
+ERROR 42000: FUNCTION f already exists
+drop function f;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/sp-security.test b/mysql-test/main/sp-security.test
index e7790bf703a..13fdbd68a55 100644
--- a/mysql-test/main/sp-security.test
+++ b/mysql-test/main/sp-security.test
@@ -465,6 +465,7 @@ create function bug12812() returns char(2)
begin
return 'ok';
end;
+|
create user user_bug12812@localhost IDENTIFIED BY 'ABC'|
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
connect (test_user_12812,localhost,user_bug12812,ABC,test)|
@@ -910,8 +911,9 @@ DROP USER 'tester';
DROP USER 'Tester';
DROP DATABASE B48872;
---echo End of 5.0 tests.
-
+--echo #
+--echo # End of 5.0 tests.
+--echo #
--echo #
--echo # Test for bug#57061 "User without privilege on routine can discover
@@ -1079,9 +1081,8 @@ DROP USER u1@localhost;
set @@global.character_set_server=@save_character_set_server;
-
--echo #
---echo # Start of 10.5 tests
+--echo # End of 10.2 tests
--echo #
--echo #
@@ -1101,7 +1102,20 @@ CALL p1();
DROP PROCEDURE p1;
DROP USER foo@localhost;
-
--echo #
--echo # End of 10.5 tests
--echo #
+
+--echo #
+--echo # MDEV-29852 SIGSEGV in mysql_create_routine or is_acl_user on 2nd execution, ASAN use-after-poison in get_current_user (sql_acl.cc)
+--echo #
+set @cmd:="create definer=u function f(i int) returns char binary reads sql data return concat (1,i)";
+prepare s from @cmd;
+execute s;
+--error ER_SP_ALREADY_EXISTS
+execute s;
+drop function f;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/sp-ucs2.result b/mysql-test/main/sp-ucs2.result
index e7f7059dfde..912a45b1b4d 100644
--- a/mysql-test/main/sp-ucs2.result
+++ b/mysql-test/main/sp-ucs2.result
@@ -121,7 +121,7 @@ RETURN 0;
SHOW CREATE FUNCTION bug48766;
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('w') CHARSET ucs2 COLLATE ucs2_general_ci
-RETURN 0 utf8 utf8_general_ci latin1_swedish_ci
+RETURN 0 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_NAME='bug48766';
DTD_IDENTIFIER
@@ -133,7 +133,7 @@ RETURN 0;
SHOW CREATE FUNCTION bug48766;
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('а','б','в','г') CHARSET ucs2 COLLATE ucs2_general_ci
-RETURN 0 utf8 utf8_general_ci latin1_swedish_ci
+RETURN 0 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_NAME='bug48766';
DTD_IDENTIFIER
diff --git a/mysql-test/main/sp-vars.result b/mysql-test/main/sp-vars.result
index f0931ca48ff..2ee3f730788 100644
--- a/mysql-test/main/sp-vars.result
+++ b/mysql-test/main/sp-vars.result
@@ -987,10 +987,10 @@ CHARSET(arg)
latin1
CALL p2('t');
CHARSET(arg)
-utf8
+utf8mb3
CALL p2(_LATIN1 't');
CHARSET(arg)
-utf8
+utf8mb3
DROP PROCEDURE p1;
DROP PROCEDURE p2;
@@ -1252,7 +1252,7 @@ $$
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
- "var" tinytext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ "var" tinytext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
)
DROP TABLE t1;
BEGIN NOT ATOMIC
@@ -1263,7 +1263,7 @@ $$
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
- "var" text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ "var" text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
)
DROP TABLE t1;
BEGIN NOT ATOMIC
@@ -1274,7 +1274,7 @@ $$
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
- "var" mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ "var" mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
)
DROP TABLE t1;
BEGIN NOT ATOMIC
@@ -1285,7 +1285,7 @@ $$
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
- "var" longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ "var" longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
)
DROP TABLE t1;
BEGIN NOT ATOMIC
diff --git a/mysql-test/main/sp.result b/mysql-test/main/sp.result
index 2c233af8e02..88df800b0e0 100644
--- a/mysql-test/main/sp.result
+++ b/mysql-test/main/sp.result
@@ -1227,12 +1227,12 @@ n f
19 121645100408832000
20 2432902008176640000
drop table t3|
-show function status like '%f%'|
+show function status where name like '%f%' and Db <> 'sys'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
test fac FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
drop procedure ifac|
drop function fac|
-show function status like '%f%'|
+show function status where name like '%f%' and Db <> 'sys'|
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
drop table if exists t3|
create table t3 (
@@ -2414,7 +2414,7 @@ Level Code Message
Field Type Null Key Default Extra
id char(16) NO
data int(11) NO NULL
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
Database Table In_use Name_locked
Variable_name Value
Tables_in_test (foo)
@@ -2435,7 +2435,7 @@ Level Code Message
Field Type Null Key Default Extra
id char(16) NO
data int(11) NO NULL
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
Database Table In_use Name_locked
Variable_name Value
Tables_in_test (foo)
@@ -3355,15 +3355,15 @@ begin
lâbel: begin end;
label: begin end;
label1: begin end;
-end utf8 latin1_swedish_ci latin1_swedish_ci
+end utf8mb3 latin1_swedish_ci latin1_swedish_ci
show create procedure bug7088_1|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug7088_1 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug7088_1`()
-label1: begin end label1 utf8 latin1_swedish_ci latin1_swedish_ci
+label1: begin end label1 utf8mb3 latin1_swedish_ci latin1_swedish_ci
show create procedure bug7088_2|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
bug7088_2 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug7088_2`()
-läbel1: begin end utf8 latin1_swedish_ci latin1_swedish_ci
+läbel1: begin end utf8mb3 latin1_swedish_ci latin1_swedish_ci
drop procedure bug6063|
drop procedure bug7088_1|
drop procedure bug7088_2|
@@ -4918,7 +4918,7 @@ Database Create Database
mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET koi8r COLLATE koi8r_general_ci */
show create database mysqltest2|
Database Create Database
-mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
alter database mysqltest1 character set utf8|
use mysqltest2|
call mysqltest1.p1()|
@@ -4927,7 +4927,7 @@ Database Create Database
mysqltest1 CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET koi8r COLLATE koi8r_general_ci */
show create database mysqltest2|
Database Create Database
-mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */
+mysqltest2 CREATE DATABASE `mysqltest2` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
drop database mysqltest1|
drop database mysqltest2|
use test|
@@ -4979,20 +4979,20 @@ CREATE FUNCTION mysqltest2.bug16211_f4() RETURNS CHAR(10) CHARSET koi8r
RETURN ""|
SHOW CREATE FUNCTION bug16211_f1|
Function sql_mode Create Function character_set_client collation_connection Database Collation
-bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8 COLLATE utf8_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION bug16211_f2|
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r COLLATE koi8r_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
Function sql_mode Create Function character_set_client collation_connection Database Collation
-bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8 COLLATE utf8_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r COLLATE koi8r_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SELECT dtd_identifier
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
@@ -5015,13 +5015,13 @@ dtd_identifier
char(10)
SELECT CHARSET(bug16211_f1())|
CHARSET(bug16211_f1())
-utf8
+utf8mb3
SELECT CHARSET(bug16211_f2())|
CHARSET(bug16211_f2())
koi8r
SELECT CHARSET(mysqltest2.bug16211_f3())|
CHARSET(mysqltest2.bug16211_f3())
-utf8
+utf8mb3
SELECT CHARSET(mysqltest2.bug16211_f4())|
CHARSET(mysqltest2.bug16211_f4())
koi8r
@@ -5029,20 +5029,20 @@ ALTER DATABASE mysqltest1 CHARACTER SET cp1251|
ALTER DATABASE mysqltest2 CHARACTER SET cp1251|
SHOW CREATE FUNCTION bug16211_f1|
Function sql_mode Create Function character_set_client collation_connection Database Collation
-bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8 COLLATE utf8_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+bug16211_f1 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f1`() RETURNS char(10) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION bug16211_f2|
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f2 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f2`() RETURNS char(10) CHARSET koi8r COLLATE koi8r_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f3|
Function sql_mode Create Function character_set_client collation_connection Database Collation
-bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8 COLLATE utf8_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+bug16211_f3 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f3`() RETURNS char(10) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SHOW CREATE FUNCTION mysqltest2.bug16211_f4|
Function sql_mode Create Function character_set_client collation_connection Database Collation
bug16211_f4 CREATE DEFINER=`root`@`localhost` FUNCTION `bug16211_f4`() RETURNS char(10) CHARSET koi8r COLLATE koi8r_general_ci
-RETURN "" latin1 latin1_swedish_ci utf8_general_ci
+RETURN "" latin1 latin1_swedish_ci utf8mb3_general_ci
SELECT dtd_identifier
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = "mysqltest1" AND ROUTINE_NAME = "bug16211_f1"|
@@ -5065,13 +5065,13 @@ dtd_identifier
char(10)
SELECT CHARSET(bug16211_f1())|
CHARSET(bug16211_f1())
-utf8
+utf8mb3
SELECT CHARSET(bug16211_f2())|
CHARSET(bug16211_f2())
koi8r
SELECT CHARSET(mysqltest2.bug16211_f3())|
CHARSET(mysqltest2.bug16211_f3())
-utf8
+utf8mb3
SELECT CHARSET(mysqltest2.bug16211_f4())|
CHARSET(mysqltest2.bug16211_f4())
koi8r
@@ -5103,11 +5103,11 @@ SET @v2 = 'b'|
SET @v3 = 'c'|
CALL bug16676_p1('a', @v2, @v3)|
CHARSET(p1) COLLATION(p1)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
CHARSET(p2) COLLATION(p2)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
CHARSET(p3) COLLATION(p3)
-utf8 utf8_general_ci
+utf8mb3 utf8mb3_general_ci
CALL bug16676_p2('a', @v2, @v3)|
CHARSET(p1) COLLATION(p1)
koi8r koi8r_general_ci
@@ -5277,13 +5277,13 @@ CREATE DEFINER=longer_than_80_45678901234567890123456789012345678901234567890123
BEGIN
SET @a = 1;
END|
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
FUNCTION bug16899_f1() RETURNS INT
BEGIN
RETURN 1;
END|
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1...' is too long for host name (should be no longer than 255)
drop procedure if exists bug21416|
create procedure bug21416() show create procedure bug21416|
call bug21416()|
@@ -6102,7 +6102,7 @@ create procedure proc_21513()`my_label`:BEGIN END|
show create procedure proc_21513|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
proc_21513 CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_21513`()
-`my_label`:BEGIN END utf8 utf8_general_ci latin1_swedish_ci
+`my_label`:BEGIN END utf8mb3 utf8mb3_general_ci latin1_swedish_ci
drop procedure proc_21513|
End of 5.0 tests.
drop table t1,t2;
@@ -6137,7 +6137,7 @@ CREATE FUNCTION metered(a INT) RETURNS INT RETURN 12;
CREATE VIEW v1 AS SELECT test.metered(a) as metered FROM t1;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`metered`(`t1`.`a`) AS `metered` from `t1` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`metered`(`t1`.`a`) AS `metered` from `t1` utf8mb3 utf8mb3_general_ci
DROP VIEW v1;
DROP FUNCTION metered;
DROP TABLE t1;
@@ -6237,9 +6237,6 @@ NULL
set @@character_set_client=@save_character_set_client;
set @@character_set_results=@save_character_set_client;
DROP PROCEDURE p1;
-drop procedure if exists proc_25411_a;
-drop procedure if exists proc_25411_b;
-drop procedure if exists proc_25411_c;
create procedure proc_25411_a()
begin
/* real comment */
@@ -6300,7 +6297,7 @@ proc_25411_b CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_25411_b`(
begin
select p1, p2;
end latin1 latin1_swedish_ci latin1_swedish_ci
-select name, param_list, body from mysql.proc where name like "%25411%";
+select name, param_list, body from mysql.proc where name like "%25411%" order by name;
name param_list body
proc_25411_a begin
/* real comment */
@@ -8799,9 +8796,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` tinytext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -8810,9 +8807,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -8821,9 +8818,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -8832,9 +8829,9 @@ CREATE TABLE t1 AS SELECT f1() AS c1, COALESCE(f1()) AS c2, CONCAT(f1()) AS c3;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c1` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c2` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c3` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c1` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c2` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c3` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
DROP FUNCTION f1;
@@ -8935,3 +8932,43 @@ ERROR 42000: PROCEDURE does not support subqueries or stored functions
DROP TABLE t1;
# End of 10.4 tests
#
+#
+# MDEV-29129: Performance regression starting in 10.6: unlimited "select order by limit"
+#
+CREATE TABLE t1 (
+lookupId int primary key,
+value varchar(255)
+);
+insert into t1 select seq, seq from seq_1_to_100;
+# Note: the function is intentionally NOT declared as DETERMINISTIC
+CREATE FUNCTION f1(LOOKUPID_IN INT) RETURNS varchar(255) CHARSET utf8
+BEGIN
+DECLARE LOOKUP_VALUE VARCHAR(255);
+SET LOOKUP_VALUE = (SELECT value FROM t1 WHERE lookupId = LOOKUPID_IN);
+set @counter=@counter+1;
+RETURN LOOKUP_VALUE;
+END;
+//
+create table t2 (
+col1 int,
+col2 int
+);
+insert into t2 select mod(seq,100), seq from seq_1_to_1000;
+explain
+select f1(col1) from t2 order by col2 desc limit 5;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 Using filesort
+set @counter=0;
+select f1(col1) from t2 order by col2 desc limit 5;
+f1(col1)
+NULL
+99
+98
+97
+96
+# Must show 5, not 1000:
+select @counter;
+@counter
+5
+drop function f1;
+drop table t1,t2;
diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test
index 39bab1c40fa..baf89eeaba5 100644
--- a/mysql-test/main/sp.test
+++ b/mysql-test/main/sp.test
@@ -19,6 +19,11 @@
# Tests that require multibyte character sets, which are not always available,
# go into separate files (e.g. sp-ucs2.test)
+if (`SELECT $PS_PROTOCOL != 0`)
+{
+ --skip Need regular protocol but ps-protocol was specified
+}
+
--source include/default_charset.inc
set @save_character_set_client=@@character_set_client;
set @save_userstat=@@global.userstat, @@global.userstat= 0;
@@ -1470,11 +1475,11 @@ call ifac(20)|
select * from t3|
drop table t3|
--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
-show function status like '%f%'|
+show function status where name like '%f%' and Db <> 'sys'|
drop procedure ifac|
drop function fac|
--replace_column 4 'root@localhost' 5 '0000-00-00 00:00:00' 6 '0000-00-00 00:00:00'
-show function status like '%f%'|
+show function status where name like '%f%' and Db <> 'sys'|
# primes
@@ -3272,7 +3277,7 @@ call bug7013()|
drop procedure bug7013|
#
-# BUG#7743: 'Lost connection to MySQL server during query' on Stored Procedure
+# BUG#7743: 'Lost connection to server during query' on Stored Procedure
#
--disable_warnings
drop table if exists t4|
@@ -6281,7 +6286,7 @@ BEGIN
END|
--error ER_WRONG_STRING_LENGTH
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
FUNCTION bug16899_f1() RETURNS INT
BEGIN
RETURN 1;
@@ -7382,12 +7387,6 @@ DROP PROCEDURE p1;
# Bug#25411 (trigger code truncated)
#
---disable_warnings
-drop procedure if exists proc_25411_a;
-drop procedure if exists proc_25411_b;
-drop procedure if exists proc_25411_c;
---enable_warnings
-
delimiter $$;
create procedure proc_25411_a()
@@ -7428,7 +7427,7 @@ show create procedure proc_25411_a;
call proc_25411_a();
show create procedure proc_25411_b;
-select name, param_list, body from mysql.proc where name like "%25411%";
+select name, param_list, body from mysql.proc where name like "%25411%" order by name;
call proc_25411_b(10, 20);
show create procedure proc_25411_c;
@@ -10520,3 +10519,40 @@ DROP TABLE t1;
--echo # End of 10.4 tests
--echo #
+
+--echo #
+--echo # MDEV-29129: Performance regression starting in 10.6: unlimited "select order by limit"
+--echo #
+
+CREATE TABLE t1 (
+ lookupId int primary key,
+ value varchar(255)
+);
+insert into t1 select seq, seq from seq_1_to_100;
+
+-- echo # Note: the function is intentionally NOT declared as DETERMINISTIC
+delimiter //;
+CREATE FUNCTION f1(LOOKUPID_IN INT) RETURNS varchar(255) CHARSET utf8
+BEGIN
+ DECLARE LOOKUP_VALUE VARCHAR(255);
+ SET LOOKUP_VALUE = (SELECT value FROM t1 WHERE lookupId = LOOKUPID_IN);
+ set @counter=@counter+1;
+ RETURN LOOKUP_VALUE;
+END;
+//
+delimiter ;//
+
+create table t2 (
+ col1 int,
+ col2 int
+);
+insert into t2 select mod(seq,100), seq from seq_1_to_1000;
+
+explain
+select f1(col1) from t2 order by col2 desc limit 5;
+set @counter=0;
+select f1(col1) from t2 order by col2 desc limit 5;
+--echo # Must show 5, not 1000:
+select @counter;
+drop function f1;
+drop table t1,t2;
diff --git a/mysql-test/main/sp2.result b/mysql-test/main/sp2.result
index 55f3d80f25b..807cc801918 100644
--- a/mysql-test/main/sp2.result
+++ b/mysql-test/main/sp2.result
@@ -1,10 +1,10 @@
CREATE DATABASE test1;
CREATE PROCEDURE test1.sp3() BEGIN END;
-SHOW PROCEDURE STATUS;
+SHOW PROCEDURE STATUS WHERE Db <> 'sys';
Db Name Type Definer Modified Created Security_type Comment character_set_client collation_connection Database Collation
-mtr add_suppression PROCEDURE root@localhost # # DEFINER utf8 utf8_general_ci latin1_swedish_ci
-mtr check_testcase PROCEDURE root@localhost # # DEFINER utf8 utf8_general_ci latin1_swedish_ci
-mtr check_warnings PROCEDURE root@localhost # # DEFINER utf8 utf8_general_ci latin1_swedish_ci
+mtr add_suppression PROCEDURE root@localhost # # DEFINER utf8mb3 utf8mb3_general_ci latin1_swedish_ci
+mtr check_testcase PROCEDURE root@localhost # # DEFINER utf8mb3 utf8mb3_general_ci latin1_swedish_ci
+mtr check_warnings PROCEDURE root@localhost # # DEFINER utf8mb3 utf8mb3_general_ci latin1_swedish_ci
mysql AddGeometryColumn PROCEDURE mariadb.sys@localhost # # INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
mysql DropGeometryColumn PROCEDURE mariadb.sys@localhost # # INVOKER latin1 latin1_swedish_ci latin1_swedish_ci
test sp2 PROCEDURE root@localhost # # DEFINER latin1 latin1_swedish_ci latin1_swedish_ci
diff --git a/mysql-test/main/sp2.test b/mysql-test/main/sp2.test
index a638bf1e706..6227f8d7371 100644
--- a/mysql-test/main/sp2.test
+++ b/mysql-test/main/sp2.test
@@ -17,7 +17,7 @@ CREATE DATABASE test1;
CREATE PROCEDURE test1.sp3() BEGIN END;
--replace_column 5 # 6 #
-SHOW PROCEDURE STATUS;
+SHOW PROCEDURE STATUS WHERE Db <> 'sys';
# Cleanup
DROP PROCEDURE sp2;
diff --git a/mysql-test/main/sp_gis.test b/mysql-test/main/sp_gis.test
index 4148a4ec423..749586854a3 100644
--- a/mysql-test/main/sp_gis.test
+++ b/mysql-test/main/sp_gis.test
@@ -12,6 +12,8 @@ drop function if exists x;
drop function if exists y;
--enable_warnings
+--enable_prepare_warnings
+
create function a() returns int
return 1;
@@ -97,6 +99,8 @@ SELECT geometrycollection();
--enable_warnings
DROP FUNCTION geometrycollection;
+--disable_prepare_warnings
+
--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/sp_notembedded.test b/mysql-test/main/sp_notembedded.test
index 29901c1221b..12bacff4e87 100644
--- a/mysql-test/main/sp_notembedded.test
+++ b/mysql-test/main/sp_notembedded.test
@@ -185,6 +185,7 @@ set @@max_sp_recursion_depth=255|
set @var=1|
# disable log because error about stack overrun contains numbers which
# depend on a system
+-- disable_ps_protocol
-- disable_result_log
-- error ER_STACK_OVERRUN_NEED_MORE
call bug10100p(255, @var)|
@@ -197,6 +198,7 @@ call bug10100pd(1,255)|
-- error ER_STACK_OVERRUN_NEED_MORE
call bug10100pc(1,255)|
-- enable_result_log
+-- enable_ps_protocol
set @@max_sp_recursion_depth=0|
deallocate prepare stmt2|
diff --git a/mysql-test/main/sp_trans.test b/mysql-test/main/sp_trans.test
index b39c13287ed..abc308a26d8 100644
--- a/mysql-test/main/sp_trans.test
+++ b/mysql-test/main/sp_trans.test
@@ -522,6 +522,7 @@ select @@session.max_heap_table_size|
--disable_warnings
create table t3 (a char(255)) engine=InnoDB|
--enable_warnings
+--enable_prepare_warnings
create procedure bug14210_fill_table()
begin
declare table_size, max_table_size int default 0;
@@ -533,6 +534,7 @@ begin
select count(*)*255 from t3 into table_size;
until table_size > max_table_size*2 end repeat;
end|
+--disable_prepare_warnings
--disable_warnings
call bug14210_fill_table()|
--enable_warnings
diff --git a/mysql-test/main/sp_trans_log.test b/mysql-test/main/sp_trans_log.test
index deea6e6d9b6..12efcc46ada 100644
--- a/mysql-test/main/sp_trans_log.test
+++ b/mysql-test/main/sp_trans_log.test
@@ -22,6 +22,7 @@ CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=
insert into t2 values (1,1)|
+--enable_prepare_warnings
create function bug23333()
RETURNS int(11)
DETERMINISTIC
@@ -31,6 +32,7 @@ begin
return @a;
end|
delimiter ;|
+--disable_prepare_warnings
reset master;
--error ER_DUP_ENTRY
diff --git a/mysql-test/main/ssl-big.test b/mysql-test/main/ssl-big.test
index a23f3028f02..46076e03e70 100644
--- a/mysql-test/main/ssl-big.test
+++ b/mysql-test/main/ssl-big.test
@@ -4,8 +4,10 @@
-- source include/have_ssl_communication.inc
-- source include/big_test.inc
-- source include/have_64bit.inc
+# No point in running with valgrind as it takes 1.5 hours
+-- source include/not_valgrind.inc
# This test often times out with MemorySanitizer.
---source include/not_msan.inc
+-- source include/not_msan.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
diff --git a/mysql-test/main/ssl.result b/mysql-test/main/ssl.result
index 40a32fdd1dd..794830e5529 100644
--- a/mysql-test/main/ssl.result
+++ b/mysql-test/main/ssl.result
@@ -4,10 +4,10 @@ have_ssl
1
SHOW STATUS LIKE 'Ssl_server_not_before';
Variable_name Value
-Ssl_server_not_before Jan 27 10:11:10 2019 GMT
+Ssl_server_not_before Mar 3 03:03:03 2020 GMT
SHOW STATUS LIKE 'Ssl_server_not_after';
Variable_name Value
-Ssl_server_not_after Jan 22 10:11:10 2039 GMT
+Ssl_server_not_after Feb 27 03:03:03 2040 GMT
drop table if exists t1,t2,t3,t4;
CREATE TABLE t1 (
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
@@ -2100,10 +2100,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/ssl.test b/mysql-test/main/ssl.test
index 8812c792a47..d3830bb7007 100644
--- a/mysql-test/main/ssl.test
+++ b/mysql-test/main/ssl.test
@@ -27,7 +27,7 @@ SHOW STATUS LIKE 'Ssl_server_not_after';
SELECT (VARIABLE_VALUE <> '') AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
#
-# MDEV-7697 Client reports ERROR 2006 (MySQL server has gone away) or ERROR 2013 (Lost connection to MySQL server during query) while executing AES* functions under SSL
+# MDEV-7697 Client reports ERROR 2006 (MySQL server has gone away) or ERROR 2013 (Lost connection to server during query) while executing AES* functions under SSL
#
select aes_decrypt('MySQL','adf');
select 'still connected?';
diff --git a/mysql-test/main/ssl_compress.result b/mysql-test/main/ssl_compress.result
index 8c63c798afa..69de425cdc1 100644
--- a/mysql-test/main/ssl_compress.result
+++ b/mysql-test/main/ssl_compress.result
@@ -2097,10 +2097,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/ssl_crl.test b/mysql-test/main/ssl_crl.test
index 7ed5c210215..9b4758578a7 100644
--- a/mysql-test/main/ssl_crl.test
+++ b/mysql-test/main/ssl_crl.test
@@ -8,6 +8,6 @@
--echo # try logging in with a certificate in the server's --ssl-crl : should fail
# OpenSSL 1.1.1a correctly rejects the certificate, but the error message is different
---replace_regex /ERROR 2013 \(HY000\): Lost connection to MySQL server at '.*', system error: [0-9]+/ERROR 2026 (HY000): TLS\/SSL error: sslv3 alert certificate revoked/
+--replace_regex /ERROR 2013 \(HY000\): Lost connection to server at '.*', system error: [0-9]+/ERROR 2026 (HY000): TLS\/SSL error: sslv3 alert certificate revoked/
--error 1
--exec $MYSQL --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test -e "SHOW STATUS LIKE 'Ssl_version'" 2>&1
diff --git a/mysql-test/main/stat_tables.result b/mysql-test/main/stat_tables.result
index 4b734316d59..379e9737e1c 100644
--- a/mysql-test/main/stat_tables.result
+++ b/mysql-test/main/stat_tables.result
@@ -154,10 +154,10 @@ select count(distinct o_custkey) from orders;
count(distinct o_custkey)
100
show index from orders;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE
-orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE
-orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE NO
+orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE NO
+orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE NO
select index_name, column_name, cardinality from information_schema.statistics
where table_name='orders';
index_name column_name cardinality
@@ -656,33 +656,33 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
dbt3_s001 lineitem i_l_commitdate 1 2.7160
SHOW INDEXES FROM lineitem;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='lineitem';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT
COUNT(DISTINCT l_orderkey), COUNT(DISTINCT l_orderkey,l_linenumber),
COUNT(DISTINCT l_shipDATE),
diff --git a/mysql-test/main/stat_tables_innodb.result b/mysql-test/main/stat_tables_innodb.result
index 6fafac8776b..5b62f228b1f 100644
--- a/mysql-test/main/stat_tables_innodb.result
+++ b/mysql-test/main/stat_tables_innodb.result
@@ -186,10 +186,10 @@ select count(distinct o_custkey) from orders;
count(distinct o_custkey)
100
show index from orders;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE
-orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE
-orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE NO
+orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE NO
+orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE NO
select index_name, column_name, cardinality from information_schema.statistics
where table_name='orders';
index_name column_name cardinality
@@ -688,33 +688,33 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
dbt3_s001 lineitem i_l_commitdate 1 2.7160
SHOW INDEXES FROM lineitem;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='lineitem';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT
COUNT(DISTINCT l_orderkey), COUNT(DISTINCT l_orderkey,l_linenumber),
COUNT(DISTINCT l_shipDATE),
diff --git a/mysql-test/main/stat_tables_par.inc b/mysql-test/main/stat_tables_par.inc
index 16f64cebfe7..52e66ef09d2 100644
--- a/mysql-test/main/stat_tables_par.inc
+++ b/mysql-test/main/stat_tables_par.inc
@@ -1,6 +1,8 @@
# Note that this test requires a fresh restart to not have problems with the
# old status values
+--disable_service_connection
+
set @save_use_stat_tables=@@use_stat_tables;
set use_stat_tables='preferably';
@@ -241,6 +243,8 @@ DROP DATABASE dbt3_s001;
use test;
+--enable_service_connection
+
#
# Bug mdev-4019: crash when executing in parallel ANALYZE and
# SELECT * FROM information_schema.statistics
diff --git a/mysql-test/main/stat_tables_par.result b/mysql-test/main/stat_tables_par.result
index 33fbe079c9e..7a95e8259b6 100644
--- a/mysql-test/main/stat_tables_par.result
+++ b/mysql-test/main/stat_tables_par.result
@@ -274,8 +274,8 @@ a b
2 2
SET DEBUG_SYNC= "now SIGNAL go";
connection default;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test a 1 a A 2 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 1 test a 1 a A 2 NULL NULL YES BTREE NO
connection default;
disconnect con1;
set debug_sync='RESET';
diff --git a/mysql-test/main/stat_tables_par_innodb.result b/mysql-test/main/stat_tables_par_innodb.result
index c33785a9436..2b2d091444f 100644
--- a/mysql-test/main/stat_tables_par_innodb.result
+++ b/mysql-test/main/stat_tables_par_innodb.result
@@ -307,8 +307,8 @@ a b
2 2
SET DEBUG_SYNC= "now SIGNAL go";
connection default;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test a 1 a A 2 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
+def test t1 1 test a 1 a A 2 NULL NULL YES BTREE NO
connection default;
disconnect con1;
set debug_sync='RESET';
diff --git a/mysql-test/main/status.result b/mysql-test/main/status.result
index 20538d673d5..d17bd9c6a61 100644
--- a/mysql-test/main/status.result
+++ b/mysql-test/main/status.result
@@ -438,6 +438,12 @@ json_valid('123')
SHOW STATUS LIKE 'Feature_json';
Variable_name Value
Feature_json 1
+select * from json_table ('{}', '$' COLUMNS(x FOR ORDINALITY)) a;
+x
+1
+SHOW STATUS LIKE 'Feature_json';
+Variable_name Value
+Feature_json 2
connection default;
set @@global.concurrent_insert= @old_concurrent_insert;
SET GLOBAL log_output = @old_log_output;
diff --git a/mysql-test/main/status.test b/mysql-test/main/status.test
index 221a24aedf4..78626615d45 100644
--- a/mysql-test/main/status.test
+++ b/mysql-test/main/status.test
@@ -436,6 +436,8 @@ SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME
SHOW STATUS LIKE 'Feature_json';
select json_valid('123');
SHOW STATUS LIKE 'Feature_json';
+select * from json_table ('{}', '$' COLUMNS(x FOR ORDINALITY)) a;
+SHOW STATUS LIKE 'Feature_json';
# Restore global concurrent_insert value. Keep in the end of the test file.
--connection default
diff --git a/mysql-test/main/strings.result b/mysql-test/main/strings.result
new file mode 100644
index 00000000000..6573e734422
--- /dev/null
+++ b/mysql-test/main/strings.result
@@ -0,0 +1,30 @@
+#
+# MDEV-25612 Assertion `to <= end' failed in process_args
+#
+SET SESSION default_master_connection=REPEAT('a',190),lc_messages=ru_ru;
+CHANGE MASTER TO master_host='dummy';
+START SLAVE sql_thread;
+CHANGE MASTER TO master_user='user',master_password='pwd';
+ERROR HY000: \042D\0442\0443 \043E\043F\0435\0440\0430\0446\0438\044E \043D\0435\0432\043E\0437\043C\043E\0436\043D\043E \0432\044B\043F\043E\043B\043D\0438\0442\044C \043F\0440\0438 \0440\0430\0431\043E\0442\0430\044E\0449\0435\043C \043F\043E\0442\043E\043A\0435 \043F\043E\0434\0447\0438\043D\0435\043D\043D\043E\0433\043E \0441\0435\0440\0432\0435\0440\0430 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+STOP SLAVE;
+RESET SLAVE ALL;
+#
+# MDEV-25754 ASAN: stack-buffer-overflow in Field_newdate::val_str
+#
+CREATE TABLE t1 (d DATE);
+INSERT INTO t1 VALUES ('1920-03-02'),('2020-12-01');
+SELECT LENGTH(CONCAT_WS(d, ' ')) FROM t1;
+LENGTH(CONCAT_WS(d, ' '))
+1
+1
+DROP TABLE t1;
+#
+# MDEV-28315 ASAN stack-buffer-overflow in String::copy_aligned
+#
+CREATE TABLE t1 (a VARBINARY(128)) CHARACTER SET utf32;
+INSERT INTO t1 VALUES ('South Carolina, Vermont, New Jersey, New Mexico, Wisconsin, Missouri, Delaware');
+CREATE TABLE t2 (b SET('South Carolina', 'Vermont', 'Texas', 'New Mexico', 'Wisconsin', 'Missouri', 'Delaware', 'Wyoming', 'New Jersey', 'Maryland', 'Illinois', 'New York')) CHARACTER SET utf32;
+INSERT INTO t2 SELECT * FROM t1;
+ERROR 01000: Data truncated for column 'b' at row 1
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/main/strings.test b/mysql-test/main/strings.test
new file mode 100644
index 00000000000..3f3f4b572af
--- /dev/null
+++ b/mysql-test/main/strings.test
@@ -0,0 +1,38 @@
+--source include/not_windows.inc
+--source include/not_embedded.inc
+
+#
+# Test that exposes problems in string functions like my_vsnprintf
+#
+
+--echo #
+--echo # MDEV-25612 Assertion `to <= end' failed in process_args
+--echo #
+SET SESSION default_master_connection=REPEAT('a',190),lc_messages=ru_ru;
+CHANGE MASTER TO master_host='dummy';
+START SLAVE sql_thread;
+--error ER_SLAVE_MUST_STOP
+CHANGE MASTER TO master_user='user',master_password='pwd';
+STOP SLAVE;
+RESET SLAVE ALL;
+
+--echo #
+--echo # MDEV-25754 ASAN: stack-buffer-overflow in Field_newdate::val_str
+--echo #
+
+CREATE TABLE t1 (d DATE);
+INSERT INTO t1 VALUES ('1920-03-02'),('2020-12-01');
+SELECT LENGTH(CONCAT_WS(d, ' ')) FROM t1;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-28315 ASAN stack-buffer-overflow in String::copy_aligned
+--echo #
+
+CREATE TABLE t1 (a VARBINARY(128)) CHARACTER SET utf32;
+INSERT INTO t1 VALUES ('South Carolina, Vermont, New Jersey, New Mexico, Wisconsin, Missouri, Delaware');
+CREATE TABLE t2 (b SET('South Carolina', 'Vermont', 'Texas', 'New Mexico', 'Wisconsin', 'Missouri', 'Delaware', 'Wyoming', 'New Jersey', 'Maryland', 'Illinois', 'New York')) CHARACTER SET utf32;
+--error WARN_DATA_TRUNCATED
+INSERT INTO t2 SELECT * FROM t1;
+DROP TABLE t1;
+DROP TABLE t2;
diff --git a/mysql-test/main/subselect-crash_15755.result b/mysql-test/main/subselect-crash_15755.result
index 81b4bd16ab5..f7a07fff4ad 100644
--- a/mysql-test/main/subselect-crash_15755.result
+++ b/mysql-test/main/subselect-crash_15755.result
@@ -1,7 +1,3 @@
-set global innodb_stats_persistent= 1;
-drop table if exists t1;
-Warnings:
-Note 1051 Unknown table 'test.t1'
create table t1 (
f1 bigint(20) default 0,
f2 varchar(50) default '',
@@ -49,7 +45,7 @@ f43 varchar(50) default '',
f44 varchar(50) default '',
f45 int(10) default 0,
f46 tinyint(1) default 0
-) engine=innodb row_format=dynamic;
+) engine=innodb stats_persistent=1 row_format=dynamic;
insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),();
insert into t1 select * from t1;
insert into t1 select * from t1;
@@ -314,4 +310,3 @@ f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
drop table t1;
-set global innodb_stats_persistent= 0;
diff --git a/mysql-test/main/subselect-crash_15755.test b/mysql-test/main/subselect-crash_15755.test
index 79e259d6337..47879d1bd4d 100644
--- a/mysql-test/main/subselect-crash_15755.test
+++ b/mysql-test/main/subselect-crash_15755.test
@@ -1,6 +1,4 @@
--source include/have_innodb.inc
-set global innodb_stats_persistent= 1;
-drop table if exists t1;
create table t1 (
f1 bigint(20) default 0,
f2 varchar(50) default '',
@@ -48,8 +46,7 @@ create table t1 (
f44 varchar(50) default '',
f45 int(10) default 0,
f46 tinyint(1) default 0
-) engine=innodb row_format=dynamic;
-
+) engine=innodb stats_persistent=1 row_format=dynamic;
insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),();
insert into t1 select * from t1;
insert into t1 select * from t1;
@@ -57,4 +54,3 @@ insert into t1 select * from t1;
insert into t1 select * from t1;
select * from t1 where f2 in (select f2 from t1 group by f2 having count(distinct f3) = 1);
drop table t1;
-set global innodb_stats_persistent= 0;
diff --git a/mysql-test/main/subselect.test b/mysql-test/main/subselect.test
index 7620a51c296..be22169a1d6 100644
--- a/mysql-test/main/subselect.test
+++ b/mysql-test/main/subselect.test
@@ -30,11 +30,15 @@ SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
SET optimizer_use_condition_selectivity=4;
select (select 2);
+
+--enable_prepare_warnings
explain extended select (select 2);
SELECT (SELECT 1) UNION SELECT (SELECT 2);
explain extended SELECT (SELECT 1) UNION SELECT (SELECT 2);
SELECT (SELECT (SELECT 0 UNION SELECT 0));
explain extended SELECT (SELECT (SELECT 0 UNION SELECT 0));
+--disable_prepare_warnings
+
-- error ER_ILLEGAL_REFERENCE
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;
-- error ER_ILLEGAL_REFERENCE
@@ -460,11 +464,15 @@ SELECT * FROM (SELECT 1) b WHERE 1 IN (SELECT *);
CREATE TABLE t2 (id int(11) default NULL, KEY id (id)) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t2 VALUES (1),(2);
SELECT * FROM t2 WHERE id IN (SELECT 1);
+--enable_prepare_warnings
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1);
+--disable_prepare_warnings
SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
SELECT * FROM t2 WHERE id IN (SELECT 1+(select 1));
+--enable_prepare_warnings
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1+(select 1));
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
+--disable_prepare_warnings
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 3);
SELECT * FROM t2 WHERE id IN (SELECT 5 UNION SELECT 2);
-- error ER_UPDATE_TABLE_USED
@@ -522,7 +530,9 @@ select 1.5 > ALL (SELECT * from t1);
select 10.5 > ALL (SELECT * from t1);
select 1.5 > ANY (SELECT * from t1);
select 10.5 > ANY (SELECT * from t1);
+--enable_prepare_warnings
explain extended select (select a+1) from t1;
+--disable_prepare_warnings
select (select a+1) from t1;
drop table t1;
--enable_view_protocol
diff --git a/mysql-test/main/subselect3.result b/mysql-test/main/subselect3.result
index b3758a66a60..28187e0ffdd 100644
--- a/mysql-test/main/subselect3.result
+++ b/mysql-test/main/subselect3.result
@@ -1160,8 +1160,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
1 PRIMARY E ALL NULL NULL NULL NULL 5 Start temporary; Using join buffer (flat, BNL join)
-1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
-1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (flat, BNL join)
+1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
+1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (flat, BNL join)
flush status;
select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a);
count(*)
diff --git a/mysql-test/main/subselect3_jcl6.result b/mysql-test/main/subselect3_jcl6.result
index ec799c07003..9df821e07dc 100644
--- a/mysql-test/main/subselect3_jcl6.result
+++ b/mysql-test/main/subselect3_jcl6.result
@@ -1163,8 +1163,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
1 PRIMARY E ALL NULL NULL NULL NULL 5 Using where; Start temporary; Using join buffer (incremental, BNL join)
-1 PRIMARY D hash_ALL NULL #hash#$hj 5 test.E.a 10 Using where; Using join buffer (incremental, BNLH join)
-1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (incremental, BNL join)
+1 PRIMARY C ALL NULL NULL NULL NULL 10 Using where; Using join buffer (incremental, BNL join)
+1 PRIMARY D hash_ALL NULL #hash#$hj 5 test.E.a 10 Using where; End temporary; Using join buffer (incremental, BNLH join)
flush status;
select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a);
count(*)
diff --git a/mysql-test/main/subselect4.result b/mysql-test/main/subselect4.result
index 3eb3c265b54..e749bafd211 100644
--- a/mysql-test/main/subselect4.result
+++ b/mysql-test/main/subselect4.result
@@ -2580,7 +2580,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
2 SUBQUERY t2 ALL NULL NULL NULL NULL 4 100.00
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`l1` AS `l1`,`test`.`t1`.`i2` AS `i2` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`l1`,<max>(/* select#2 */ select max(`test`.`t2`.`v1`) from `test`.`t2`) > convert(<cache>(`test`.`t1`.`l1`) using utf8)))
+Note 1003 /* select#1 */ select `test`.`t1`.`l1` AS `l1`,`test`.`t1`.`i2` AS `i2` from `test`.`t1` where <nop>(<in_optimizer>(`test`.`t1`.`l1`,<max>(/* select#2 */ select max(`test`.`t2`.`v1`) from `test`.`t2`) > convert(<cache>(`test`.`t1`.`l1`) using utf8mb3)))
SELECT * FROM t1 where ( t1.l1 < ANY (SELECT MAX(t2.v1) FROM t2));
l1 i2
e 2
diff --git a/mysql-test/main/subselect4.test b/mysql-test/main/subselect4.test
index cc8e8f03103..2bbdb54b9c8 100644
--- a/mysql-test/main/subselect4.test
+++ b/mysql-test/main/subselect4.test
@@ -107,8 +107,10 @@ DROP TABLE t1,t2;
--echo # Bug#54568: create view cause Assertion failed: 0,
--echo # file .\item_subselect.cc, line 836
--echo #
+--enable_prepare_warnings
EXPLAIN SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
DESCRIBE SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
+--disable_prepare_warnings
--echo # None of the below should crash
CREATE VIEW v1 AS SELECT 1 LIKE ( 1 IN ( SELECT 1 ) );
CREATE VIEW v2 AS SELECT 1 LIKE '%' ESCAPE ( 1 IN ( SELECT 1 ) );
diff --git a/mysql-test/main/subselect_exists2in_costmat.test b/mysql-test/main/subselect_exists2in_costmat.test
index 5d5eeaee268..371f0936d1a 100644
--- a/mysql-test/main/subselect_exists2in_costmat.test
+++ b/mysql-test/main/subselect_exists2in_costmat.test
@@ -47,7 +47,9 @@ create index Language on CountryLanguage(Language);
create index CityName on City(Name);
alter table City change population population int(11) null default 0;
+--enable_prepare_warnings
select max(id) from City into @max_city_id;
+--disable_prepare_warnings
insert into City values (@max_city_id + 1,'Kilifarevo','BGR',NULL);
diff --git a/mysql-test/main/subselect_innodb.result b/mysql-test/main/subselect_innodb.result
index 212afa69dd2..242b01f8955 100644
--- a/mysql-test/main/subselect_innodb.result
+++ b/mysql-test/main/subselect_innodb.result
@@ -1,5 +1,7 @@
set @subselect_innodb_tmp=@@optimizer_switch;
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
+SET @saved_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = OFF;
CREATE TABLE t1
(
FOLDERID VARCHAR(32)BINARY NOT NULL
@@ -726,3 +728,4 @@ drop table t1;
#
# End of 10.4 tests
#
+SET GLOBAL innodb_stats_persistent = @saved_stats_persistent;
diff --git a/mysql-test/main/subselect_innodb.test b/mysql-test/main/subselect_innodb.test
index 7b2d93186f3..e354ddc4496 100644
--- a/mysql-test/main/subselect_innodb.test
+++ b/mysql-test/main/subselect_innodb.test
@@ -5,6 +5,8 @@
# settings are not relevant.
set @subselect_innodb_tmp=@@optimizer_switch;
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
+SET @saved_stats_persistent = @@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent = OFF;
#
# key field overflow test
@@ -725,3 +727,5 @@ drop table t1;
--echo #
--echo # End of 10.4 tests
--echo #
+
+SET GLOBAL innodb_stats_persistent = @saved_stats_persistent;
diff --git a/mysql-test/main/subselect_mat_cost.test b/mysql-test/main/subselect_mat_cost.test
index 73ba717a8dc..8fe38849735 100644
--- a/mysql-test/main/subselect_mat_cost.test
+++ b/mysql-test/main/subselect_mat_cost.test
@@ -53,7 +53,9 @@ create index Language on CountryLanguage(Language);
create index CityName on City(Name);
alter table City change population population int(11) null default 0;
+--enable_prepare_warnings
select max(id) from City into @max_city_id;
+--disable_prepare_warnings
insert into City values (@max_city_id + 1,'Kilifarevo','BGR',NULL);
diff --git a/mysql-test/main/subselect_sj.result b/mysql-test/main/subselect_sj.result
index 8daaefb81d5..ea6180e9022 100644
--- a/mysql-test/main/subselect_sj.result
+++ b/mysql-test/main/subselect_sj.result
@@ -2500,8 +2500,8 @@ WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 system NULL NULL NULL NULL 1
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1
-1 PRIMARY t2 ref a a 5 const 1 Using index
-1 PRIMARY t1 ref a a 5 func 1 Using index
+1 PRIMARY t1 ref a a 5 const 1 Using index
+1 PRIMARY t2 ref a a 5 func 1 Using index
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0
SELECT * FROM t1, t2
WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
diff --git a/mysql-test/main/subselect_sj2.result b/mysql-test/main/subselect_sj2.result
index d7af50c948f..727dfcc4c40 100644
--- a/mysql-test/main/subselect_sj2.result
+++ b/mysql-test/main/subselect_sj2.result
@@ -466,11 +466,11 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
t1.b=t2.b);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00
-1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary
Warnings:
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
-Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b`
+Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b`
update t1 set a=3, b=11 where a=4;
update t2 set b=11 where a=3;
select * from t0 where t0.a in
@@ -1129,8 +1129,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1150,8 +1150,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
diff --git a/mysql-test/main/subselect_sj2_jcl6.result b/mysql-test/main/subselect_sj2_jcl6.result
index 4869b3ff41b..66882150ebd 100644
--- a/mysql-test/main/subselect_sj2_jcl6.result
+++ b/mysql-test/main/subselect_sj2_jcl6.result
@@ -477,11 +477,11 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
t1.b=t2.b);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
-1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2); Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
+1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
Warnings:
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
-Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b`
+Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b`
update t1 set a=3, b=11 where a=4;
update t2 set b=11 where a=3;
# Not anymore:
@@ -1142,8 +1142,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
-1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
+1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1163,8 +1163,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
-1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
+1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (incremental, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
diff --git a/mysql-test/main/subselect_sj2_mat.result b/mysql-test/main/subselect_sj2_mat.result
index c4446418cd5..fe6bc0b9cbe 100644
--- a/mysql-test/main/subselect_sj2_mat.result
+++ b/mysql-test/main/subselect_sj2_mat.result
@@ -468,11 +468,11 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
t1.b=t2.b);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00
-1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary
Warnings:
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
-Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b`
+Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b`
update t1 set a=3, b=11 where a=4;
update t2 set b=11 where a=3;
select * from t0 where t0.a in
@@ -1131,8 +1131,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1152,8 +1152,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY alias3 ALL PRIMARY NULL NULL NULL # Using where
1 PRIMARY alias4 ref PRIMARY,c c 4 test.alias3.d # Using index
1 PRIMARY alias5 eq_ref PRIMARY PRIMARY 4 test.alias4.b # Using where; FirstMatch(alias3)
-1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
1 PRIMARY alias1 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
+1 PRIMARY alias2 ALL NULL NULL NULL NULL # Using join buffer (flat, BNL join)
SELECT COUNT(*) FROM t1 AS alias1, t1 AS alias2, t2 AS alias3
WHERE alias3.d IN (
SELECT alias4.c FROM t2 AS alias4, t2 AS alias5
@@ -1933,19 +1933,19 @@ AND t3.id_product IN (SELECT id_product FROM t2 t2_4 WHERE t2_4.id_t2 = 34 OR t2
AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 18 Using index
-1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where
+1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
-1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where
-1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t3.id_product,const 1 Using where; Using index
-1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where
+1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where
1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join)
+1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
+5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where
+6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where
3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12
4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 33 Using index condition; Using where
-6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where
2 MATERIALIZED t2_1 ALL id_t2,id_product NULL NULL NULL 223 Using where
-5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where
set optimizer_switch='rowid_filter=default';
drop table t1,t2,t3,t4,t5;
set global innodb_stats_persistent= @innodb_stats_persistent_save;
diff --git a/mysql-test/main/subselect_sj_jcl6.result b/mysql-test/main/subselect_sj_jcl6.result
index 222ea9e9814..bddf3fdd268 100644
--- a/mysql-test/main/subselect_sj_jcl6.result
+++ b/mysql-test/main/subselect_sj_jcl6.result
@@ -2511,8 +2511,8 @@ WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 system NULL NULL NULL NULL 1
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 1
-1 PRIMARY t2 ref a a 5 const 1 Using index
-1 PRIMARY t1 ref a a 5 func 1 Using index
+1 PRIMARY t1 ref a a 5 const 1 Using index
+1 PRIMARY t2 ref a a 5 func 1 Using index
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0
SELECT * FROM t1, t2
WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4);
diff --git a/mysql-test/main/system_mysql_db.result b/mysql-test/main/system_mysql_db.result
index 38bcc53d2dd..a14f8c8108d 100644
--- a/mysql-test/main/system_mysql_db.result
+++ b/mysql-test/main/system_mysql_db.result
@@ -34,32 +34,32 @@ user
show create table db;
Table Create Table
db CREATE TABLE `db` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_history_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
show create table user;
View Create View character_set_client collation_connection
user CREATE ALGORITHM=UNDEFINED DEFINER=`mariadb.sys`@`localhost` SQL SECURITY DEFINER VIEW `user` AS select `global_priv`.`Host` AS `Host`,`global_priv`.`User` AS `User`,if(json_value(`global_priv`.`Priv`,'$.plugin') in ('mysql_native_password','mysql_old_password'),ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),''),'') AS `Password`,if(json_value(`global_priv`.`Priv`,'$.access') & 1,'Y','N') AS `Select_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2,'Y','N') AS `Insert_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4,'Y','N') AS `Update_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8,'Y','N') AS `Delete_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16,'Y','N') AS `Create_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32,'Y','N') AS `Drop_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 64,'Y','N') AS `Reload_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 128,'Y','N') AS `Shutdown_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 256,'Y','N') AS `Process_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 512,'Y','N') AS `File_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1024,'Y','N') AS `Grant_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2048,'Y','N') AS `References_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4096,'Y','N') AS `Index_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8192,'Y','N') AS `Alter_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16384,'Y','N') AS `Show_db_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32768,'Y','N') AS `Super_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 65536,'Y','N') AS `Create_tmp_table_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 131072,'Y','N') AS `Lock_tables_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 262144,'Y','N') AS `Execute_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 524288,'Y','N') AS `Repl_slave_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1048576,'Y','N') AS `Repl_client_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2097152,'Y','N') AS `Create_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4194304,'Y','N') AS `Show_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8388608,'Y','N') AS `Create_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16777216,'Y','N') AS `Alter_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 33554432,'Y','N') AS `Create_user_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 67108864,'Y','N') AS `Event_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 134217728,'Y','N') AS `Trigger_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 268435456,'Y','N') AS `Create_tablespace_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 536870912,'Y','N') AS `Delete_history_priv`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.ssl_type'),0) + 1,'','ANY','X509','SPECIFIED') AS `ssl_type`,ifnull(json_value(`global_priv`.`Priv`,'$.ssl_cipher'),'') AS `ssl_cipher`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_issuer'),'') AS `x509_issuer`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_subject'),'') AS `x509_subject`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_questions'),0) as unsigned) AS `max_questions`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_updates'),0) as unsigned) AS `max_updates`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_connections'),0) as unsigned) AS `max_connections`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_user_connections'),0) as signed) AS `max_user_connections`,ifnull(json_value(`global_priv`.`Priv`,'$.plugin'),'') AS `plugin`,ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),'') AS `authentication_string`,if(ifnull(json_value(`global_priv`.`Priv`,'$.password_last_changed'),1) = 0,'Y','N') AS `password_expired`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.is_role'),0) + 1,'N','Y') AS `is_role`,ifnull(json_value(`global_priv`.`Priv`,'$.default_role'),'') AS `default_role`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_statement_time'),0.0) as decimal(12,6)) AS `max_statement_time` from `global_priv` latin1 latin1_swedish_ci
@@ -69,75 +69,75 @@ func CREATE TABLE `func` (
`name` char(64) NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT 0,
`dl` char(128) NOT NULL DEFAULT '',
- `type` enum('function','aggregate') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `type` enum('function','aggregate') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
PRIMARY KEY (`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
show create table global_priv;
Table Create Table
global_priv CREATE TABLE `global_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Priv` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' CHECK (json_valid(`Priv`)),
PRIMARY KEY (`Host`,`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
show create table tables_priv;
Table Create Table
tables_priv CREATE TABLE `tables_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
- `Grantor` char(141) NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
show create table columns_priv;
Table Create Table
columns_priv CREATE TABLE `columns_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
`Column_name` char(64) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Routine_name` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
- `Grantor` char(141) NOT NULL DEFAULT '',
- `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
show create table servers;
Table Create Table
servers CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` varchar(2048) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `Username` char(80) NOT NULL DEFAULT '',
+ `Username` char(128) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT 0,
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` varchar(512) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
show create table proc;
Table Create Table
proc CREATE TABLE `proc` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
@@ -148,25 +148,25 @@ proc CREATE TABLE `proc` (
`param_list` blob NOT NULL,
`returns` longblob NOT NULL,
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
`aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE',
PRIMARY KEY (`db`,`name`,`type`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
show create table event;
Table Create Table
event CREATE TABLE `event` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
@@ -178,15 +178,15 @@ event CREATE TABLE `event` (
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `comment` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM',
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
show create table general_log;
Table Create Table
general_log CREATE TABLE `general_log` (
@@ -196,7 +196,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -213,7 +213,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
show create table table_stats;
Table Create Table
table_stats CREATE TABLE `table_stats` (
@@ -221,7 +221,7 @@ table_stats CREATE TABLE `table_stats` (
`table_name` varchar(64) NOT NULL,
`cardinality` bigint(21) unsigned DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
show create table column_stats;
Table Create Table
column_stats CREATE TABLE `column_stats` (
@@ -237,7 +237,7 @@ column_stats CREATE TABLE `column_stats` (
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') DEFAULT NULL,
`histogram` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
show create table index_stats;
Table Create Table
index_stats CREATE TABLE `index_stats` (
@@ -247,6 +247,6 @@ index_stats CREATE TABLE `index_stats` (
`prefix_arity` int(11) unsigned NOT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
show tables;
Tables_in_test
diff --git a/mysql-test/main/system_mysql_db_fix40123.result b/mysql-test/main/system_mysql_db_fix40123.result
index 37cecdf8669..686c53d212d 100644
--- a/mysql-test/main/system_mysql_db_fix40123.result
+++ b/mysql-test/main/system_mysql_db_fix40123.result
@@ -29,7 +29,7 @@ Warning 1280 Name 'TzId' ignored for PRIMARY key.
CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
Warnings:
Warning 1280 Name 'TzIdTranTime' ignored for PRIMARY key.
-CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
Warnings:
Warning 1280 Name 'TzIdTrTId' ignored for PRIMARY key.
CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
@@ -72,32 +72,32 @@ user
show create table db;
Table Create Table
db CREATE TABLE `db` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_history_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
show create table user;
View Create View character_set_client collation_connection
user CREATE ALGORITHM=UNDEFINED DEFINER=`mariadb.sys`@`localhost` SQL SECURITY DEFINER VIEW `user` AS select `global_priv`.`Host` AS `Host`,`global_priv`.`User` AS `User`,if(json_value(`global_priv`.`Priv`,'$.plugin') in ('mysql_native_password','mysql_old_password'),ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),''),'') AS `Password`,if(json_value(`global_priv`.`Priv`,'$.access') & 1,'Y','N') AS `Select_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2,'Y','N') AS `Insert_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4,'Y','N') AS `Update_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8,'Y','N') AS `Delete_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16,'Y','N') AS `Create_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32,'Y','N') AS `Drop_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 64,'Y','N') AS `Reload_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 128,'Y','N') AS `Shutdown_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 256,'Y','N') AS `Process_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 512,'Y','N') AS `File_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1024,'Y','N') AS `Grant_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2048,'Y','N') AS `References_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4096,'Y','N') AS `Index_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8192,'Y','N') AS `Alter_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16384,'Y','N') AS `Show_db_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32768,'Y','N') AS `Super_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 65536,'Y','N') AS `Create_tmp_table_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 131072,'Y','N') AS `Lock_tables_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 262144,'Y','N') AS `Execute_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 524288,'Y','N') AS `Repl_slave_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1048576,'Y','N') AS `Repl_client_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2097152,'Y','N') AS `Create_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4194304,'Y','N') AS `Show_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8388608,'Y','N') AS `Create_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16777216,'Y','N') AS `Alter_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 33554432,'Y','N') AS `Create_user_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 67108864,'Y','N') AS `Event_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 134217728,'Y','N') AS `Trigger_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 268435456,'Y','N') AS `Create_tablespace_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 536870912,'Y','N') AS `Delete_history_priv`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.ssl_type'),0) + 1,'','ANY','X509','SPECIFIED') AS `ssl_type`,ifnull(json_value(`global_priv`.`Priv`,'$.ssl_cipher'),'') AS `ssl_cipher`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_issuer'),'') AS `x509_issuer`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_subject'),'') AS `x509_subject`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_questions'),0) as unsigned) AS `max_questions`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_updates'),0) as unsigned) AS `max_updates`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_connections'),0) as unsigned) AS `max_connections`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_user_connections'),0) as signed) AS `max_user_connections`,ifnull(json_value(`global_priv`.`Priv`,'$.plugin'),'') AS `plugin`,ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),'') AS `authentication_string`,if(ifnull(json_value(`global_priv`.`Priv`,'$.password_last_changed'),1) = 0,'Y','N') AS `password_expired`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.is_role'),0) + 1,'N','Y') AS `is_role`,ifnull(json_value(`global_priv`.`Priv`,'$.default_role'),'') AS `default_role`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_statement_time'),0.0) as decimal(12,6)) AS `max_statement_time` from `global_priv` latin1 latin1_swedish_ci
@@ -107,75 +107,75 @@ func CREATE TABLE `func` (
`name` char(64) NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT 0,
`dl` char(128) NOT NULL DEFAULT '',
- `type` enum('function','aggregate') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `type` enum('function','aggregate') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
PRIMARY KEY (`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
show create table global_priv;
Table Create Table
global_priv CREATE TABLE `global_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Priv` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' CHECK (json_valid(`Priv`)),
PRIMARY KEY (`Host`,`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
show create table tables_priv;
Table Create Table
tables_priv CREATE TABLE `tables_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
- `Grantor` char(141) NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
show create table columns_priv;
Table Create Table
columns_priv CREATE TABLE `columns_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
`Column_name` char(64) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Routine_name` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
- `Grantor` char(141) NOT NULL DEFAULT '',
- `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
show create table servers;
Table Create Table
servers CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` varchar(2048) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `Username` char(80) NOT NULL DEFAULT '',
+ `Username` char(128) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT 0,
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` varchar(512) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
show create table proc;
Table Create Table
proc CREATE TABLE `proc` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
@@ -186,25 +186,25 @@ proc CREATE TABLE `proc` (
`param_list` blob NOT NULL,
`returns` longblob NOT NULL,
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
`aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE',
PRIMARY KEY (`db`,`name`,`type`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
show create table event;
Table Create Table
event CREATE TABLE `event` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
@@ -216,15 +216,15 @@ event CREATE TABLE `event` (
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `comment` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM',
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
show create table general_log;
Table Create Table
general_log CREATE TABLE `general_log` (
@@ -234,7 +234,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -251,7 +251,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
show create table table_stats;
Table Create Table
table_stats CREATE TABLE `table_stats` (
@@ -259,7 +259,7 @@ table_stats CREATE TABLE `table_stats` (
`table_name` varchar(64) NOT NULL,
`cardinality` bigint(21) unsigned DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
show create table column_stats;
Table Create Table
column_stats CREATE TABLE `column_stats` (
@@ -275,7 +275,7 @@ column_stats CREATE TABLE `column_stats` (
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') DEFAULT NULL,
`histogram` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
show create table index_stats;
Table Create Table
index_stats CREATE TABLE `index_stats` (
@@ -285,7 +285,7 @@ index_stats CREATE TABLE `index_stats` (
`prefix_arity` int(11) unsigned NOT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
DROP VIEW user;
DROP TABLE db, host, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, proxies_priv, innodb_index_stats, innodb_table_stats, transaction_registry, table_stats, column_stats, index_stats, roles_mapping, gtid_slave_pos, global_priv;
show tables;
diff --git a/mysql-test/main/system_mysql_db_fix40123.test b/mysql-test/main/system_mysql_db_fix40123.test
index 2e7ebd151d2..08aac433433 100644
--- a/mysql-test/main/system_mysql_db_fix40123.test
+++ b/mysql-test/main/system_mysql_db_fix40123.test
@@ -42,7 +42,7 @@ CREATE TABLE help_keyword ( help_keyword_id int unsigned not null, name varchar(
CREATE TABLE time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
CREATE TABLE time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
-CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
# Run the mysql_fix_privilege_tables.sql using "mysql --force"
diff --git a/mysql-test/main/system_mysql_db_fix50030.result b/mysql-test/main/system_mysql_db_fix50030.result
index c7086d66a59..cb957a03240 100644
--- a/mysql-test/main/system_mysql_db_fix50030.result
+++ b/mysql-test/main/system_mysql_db_fix50030.result
@@ -29,7 +29,7 @@ Warning 1280 Name 'TzId' ignored for PRIMARY key.
CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
Warnings:
Warning 1280 Name 'TzIdTranTime' ignored for PRIMARY key.
-CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
Warnings:
Warning 1280 Name 'TzIdTrTId' ignored for PRIMARY key.
CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
@@ -76,32 +76,32 @@ user
show create table db;
Table Create Table
db CREATE TABLE `db` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_history_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
show create table user;
View Create View character_set_client collation_connection
user CREATE ALGORITHM=UNDEFINED DEFINER=`mariadb.sys`@`localhost` SQL SECURITY DEFINER VIEW `user` AS select `global_priv`.`Host` AS `Host`,`global_priv`.`User` AS `User`,if(json_value(`global_priv`.`Priv`,'$.plugin') in ('mysql_native_password','mysql_old_password'),ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),''),'') AS `Password`,if(json_value(`global_priv`.`Priv`,'$.access') & 1,'Y','N') AS `Select_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2,'Y','N') AS `Insert_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4,'Y','N') AS `Update_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8,'Y','N') AS `Delete_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16,'Y','N') AS `Create_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32,'Y','N') AS `Drop_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 64,'Y','N') AS `Reload_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 128,'Y','N') AS `Shutdown_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 256,'Y','N') AS `Process_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 512,'Y','N') AS `File_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1024,'Y','N') AS `Grant_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2048,'Y','N') AS `References_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4096,'Y','N') AS `Index_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8192,'Y','N') AS `Alter_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16384,'Y','N') AS `Show_db_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32768,'Y','N') AS `Super_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 65536,'Y','N') AS `Create_tmp_table_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 131072,'Y','N') AS `Lock_tables_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 262144,'Y','N') AS `Execute_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 524288,'Y','N') AS `Repl_slave_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1048576,'Y','N') AS `Repl_client_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2097152,'Y','N') AS `Create_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4194304,'Y','N') AS `Show_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8388608,'Y','N') AS `Create_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16777216,'Y','N') AS `Alter_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 33554432,'Y','N') AS `Create_user_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 67108864,'Y','N') AS `Event_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 134217728,'Y','N') AS `Trigger_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 268435456,'Y','N') AS `Create_tablespace_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 536870912,'Y','N') AS `Delete_history_priv`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.ssl_type'),0) + 1,'','ANY','X509','SPECIFIED') AS `ssl_type`,ifnull(json_value(`global_priv`.`Priv`,'$.ssl_cipher'),'') AS `ssl_cipher`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_issuer'),'') AS `x509_issuer`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_subject'),'') AS `x509_subject`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_questions'),0) as unsigned) AS `max_questions`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_updates'),0) as unsigned) AS `max_updates`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_connections'),0) as unsigned) AS `max_connections`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_user_connections'),0) as signed) AS `max_user_connections`,ifnull(json_value(`global_priv`.`Priv`,'$.plugin'),'') AS `plugin`,ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),'') AS `authentication_string`,if(ifnull(json_value(`global_priv`.`Priv`,'$.password_last_changed'),1) = 0,'Y','N') AS `password_expired`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.is_role'),0) + 1,'N','Y') AS `is_role`,ifnull(json_value(`global_priv`.`Priv`,'$.default_role'),'') AS `default_role`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_statement_time'),0.0) as decimal(12,6)) AS `max_statement_time` from `global_priv` latin1 latin1_swedish_ci
@@ -111,75 +111,75 @@ func CREATE TABLE `func` (
`name` char(64) NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT 0,
`dl` char(128) NOT NULL DEFAULT '',
- `type` enum('function','aggregate') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `type` enum('function','aggregate') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
PRIMARY KEY (`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
show create table global_priv;
Table Create Table
global_priv CREATE TABLE `global_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Priv` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' CHECK (json_valid(`Priv`)),
PRIMARY KEY (`Host`,`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
show create table tables_priv;
Table Create Table
tables_priv CREATE TABLE `tables_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
- `Grantor` char(141) NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
show create table columns_priv;
Table Create Table
columns_priv CREATE TABLE `columns_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
`Column_name` char(64) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
`Host` char(60) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Routine_name` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
- `Grantor` char(141) NOT NULL DEFAULT '',
- `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
show create table servers;
Table Create Table
servers CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` char(64) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `Username` char(80) NOT NULL DEFAULT '',
+ `Username` char(128) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT 0,
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
show create table proc;
Table Create Table
proc CREATE TABLE `proc` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
@@ -190,25 +190,25 @@ proc CREATE TABLE `proc` (
`param_list` blob NOT NULL DEFAULT '',
`returns` longblob NOT NULL,
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
`aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE',
PRIMARY KEY (`db`,`name`,`type`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
show create table event;
Table Create Table
event CREATE TABLE `event` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
@@ -220,15 +220,15 @@ event CREATE TABLE `event` (
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `comment` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM',
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
show create table general_log;
Table Create Table
general_log CREATE TABLE `general_log` (
@@ -238,7 +238,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -255,7 +255,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
show create table table_stats;
Table Create Table
table_stats CREATE TABLE `table_stats` (
@@ -263,7 +263,7 @@ table_stats CREATE TABLE `table_stats` (
`table_name` varchar(64) NOT NULL,
`cardinality` bigint(21) unsigned DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
show create table column_stats;
Table Create Table
column_stats CREATE TABLE `column_stats` (
@@ -279,7 +279,7 @@ column_stats CREATE TABLE `column_stats` (
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') DEFAULT NULL,
`histogram` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
show create table index_stats;
Table Create Table
index_stats CREATE TABLE `index_stats` (
@@ -289,7 +289,7 @@ index_stats CREATE TABLE `index_stats` (
`prefix_arity` int(11) unsigned NOT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
DROP VIEW user;
DROP TABLE db, host, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, proxies_priv, innodb_index_stats, innodb_table_stats, transaction_registry, table_stats, column_stats, index_stats, roles_mapping, gtid_slave_pos, global_priv;
show tables;
diff --git a/mysql-test/main/system_mysql_db_fix50030.test b/mysql-test/main/system_mysql_db_fix50030.test
index 77f1a97b1aa..a9830471988 100644
--- a/mysql-test/main/system_mysql_db_fix50030.test
+++ b/mysql-test/main/system_mysql_db_fix50030.test
@@ -42,7 +42,7 @@ CREATE TABLE help_keyword ( help_keyword_id int unsigned not null, name char(64)
CREATE TABLE time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
CREATE TABLE time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
-CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
CREATE TABLE proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures';
CREATE TABLE procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges';
diff --git a/mysql-test/main/system_mysql_db_fix50117.result b/mysql-test/main/system_mysql_db_fix50117.result
index 84861744a70..fba7c6365fe 100644
--- a/mysql-test/main/system_mysql_db_fix50117.result
+++ b/mysql-test/main/system_mysql_db_fix50117.result
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null,
CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
-CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, modified timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures';
CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges';
@@ -56,32 +56,32 @@ user
show create table db;
Table Create Table
db CREATE TABLE `db` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Select_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Insert_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Update_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Drop_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Grant_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `References_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Index_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Show_view_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Execute_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Event_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Trigger_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
- `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Select_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Insert_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Update_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Drop_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Grant_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `References_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Index_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Show_view_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Create_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Execute_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Event_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Trigger_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
+ `Delete_history_priv` enum('N','Y') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'N',
PRIMARY KEY (`Host`,`Db`,`User`),
KEY `User` (`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Database privileges'
show create table user;
View Create View character_set_client collation_connection
user CREATE ALGORITHM=UNDEFINED DEFINER=`mariadb.sys`@`localhost` SQL SECURITY DEFINER VIEW `user` AS select `global_priv`.`Host` AS `Host`,`global_priv`.`User` AS `User`,if(json_value(`global_priv`.`Priv`,'$.plugin') in ('mysql_native_password','mysql_old_password'),ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),''),'') AS `Password`,if(json_value(`global_priv`.`Priv`,'$.access') & 1,'Y','N') AS `Select_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2,'Y','N') AS `Insert_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4,'Y','N') AS `Update_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8,'Y','N') AS `Delete_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16,'Y','N') AS `Create_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32,'Y','N') AS `Drop_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 64,'Y','N') AS `Reload_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 128,'Y','N') AS `Shutdown_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 256,'Y','N') AS `Process_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 512,'Y','N') AS `File_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1024,'Y','N') AS `Grant_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2048,'Y','N') AS `References_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4096,'Y','N') AS `Index_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8192,'Y','N') AS `Alter_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16384,'Y','N') AS `Show_db_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 32768,'Y','N') AS `Super_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 65536,'Y','N') AS `Create_tmp_table_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 131072,'Y','N') AS `Lock_tables_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 262144,'Y','N') AS `Execute_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 524288,'Y','N') AS `Repl_slave_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 1048576,'Y','N') AS `Repl_client_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 2097152,'Y','N') AS `Create_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 4194304,'Y','N') AS `Show_view_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 8388608,'Y','N') AS `Create_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 16777216,'Y','N') AS `Alter_routine_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 33554432,'Y','N') AS `Create_user_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 67108864,'Y','N') AS `Event_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 134217728,'Y','N') AS `Trigger_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 268435456,'Y','N') AS `Create_tablespace_priv`,if(json_value(`global_priv`.`Priv`,'$.access') & 536870912,'Y','N') AS `Delete_history_priv`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.ssl_type'),0) + 1,'','ANY','X509','SPECIFIED') AS `ssl_type`,ifnull(json_value(`global_priv`.`Priv`,'$.ssl_cipher'),'') AS `ssl_cipher`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_issuer'),'') AS `x509_issuer`,ifnull(json_value(`global_priv`.`Priv`,'$.x509_subject'),'') AS `x509_subject`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_questions'),0) as unsigned) AS `max_questions`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_updates'),0) as unsigned) AS `max_updates`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_connections'),0) as unsigned) AS `max_connections`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_user_connections'),0) as signed) AS `max_user_connections`,ifnull(json_value(`global_priv`.`Priv`,'$.plugin'),'') AS `plugin`,ifnull(json_value(`global_priv`.`Priv`,'$.authentication_string'),'') AS `authentication_string`,if(ifnull(json_value(`global_priv`.`Priv`,'$.password_last_changed'),1) = 0,'Y','N') AS `password_expired`,elt(ifnull(json_value(`global_priv`.`Priv`,'$.is_role'),0) + 1,'N','Y') AS `is_role`,ifnull(json_value(`global_priv`.`Priv`,'$.default_role'),'') AS `default_role`,cast(ifnull(json_value(`global_priv`.`Priv`,'$.max_statement_time'),0.0) as decimal(12,6)) AS `max_statement_time` from `global_priv` latin1 latin1_swedish_ci
@@ -91,75 +91,75 @@ func CREATE TABLE `func` (
`name` char(64) NOT NULL DEFAULT '',
`ret` tinyint(1) NOT NULL DEFAULT 0,
`dl` char(128) NOT NULL DEFAULT '',
- `type` enum('function','aggregate') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `type` enum('function','aggregate') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
PRIMARY KEY (`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='User defined functions'
show create table global_priv;
Table Create Table
global_priv CREATE TABLE `global_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Priv` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '{}' CHECK (json_valid(`Priv`)),
PRIMARY KEY (`Host`,`User`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Users and global privileges'
show create table tables_priv;
Table Create Table
tables_priv CREATE TABLE `tables_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
- `Grantor` char(141) NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Table privileges'
show create table columns_priv;
Table Create Table
columns_priv CREATE TABLE `columns_priv` (
- `Host` char(60) NOT NULL DEFAULT '',
+ `Host` char(255) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
`Table_name` char(64) NOT NULL DEFAULT '',
`Column_name` char(64) NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
- `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Column privileges'
show create table procs_priv;
Table Create Table
procs_priv CREATE TABLE `procs_priv` (
`Host` char(60) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `User` char(80) NOT NULL DEFAULT '',
- `Routine_name` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `User` char(128) NOT NULL DEFAULT '',
+ `Routine_name` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Routine_type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
- `Grantor` char(141) NOT NULL DEFAULT '',
- `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
+ `Grantor` varchar(384) NOT NULL DEFAULT '',
+ `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
KEY `Grantor` (`Grantor`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Procedure privileges'
show create table servers;
Table Create Table
servers CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL DEFAULT '',
`Host` char(64) NOT NULL DEFAULT '',
`Db` char(64) NOT NULL DEFAULT '',
- `Username` char(80) NOT NULL DEFAULT '',
+ `Username` char(128) NOT NULL DEFAULT '',
`Password` char(64) NOT NULL DEFAULT '',
`Port` int(4) NOT NULL DEFAULT 0,
`Socket` char(64) NOT NULL DEFAULT '',
`Wrapper` char(64) NOT NULL DEFAULT '',
`Owner` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`Server_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='MySQL Foreign Servers table'
show create table proc;
Table Create Table
proc CREATE TABLE `proc` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
`specific_name` char(64) NOT NULL DEFAULT '',
@@ -170,25 +170,25 @@ proc CREATE TABLE `proc` (
`param_list` blob NOT NULL,
`returns` longblob NOT NULL,
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
`aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE',
PRIMARY KEY (`db`,`name`,`type`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Stored Procedures'
show create table event;
Table Create Table
event CREATE TABLE `event` (
- `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `db` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
`body` longblob NOT NULL,
- `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `definer` varchar(384) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
@@ -200,15 +200,15 @@ event CREATE TABLE `event` (
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '',
- `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
+ `comment` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT '',
`originator` int(10) unsigned NOT NULL,
`time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM',
- `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
- `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
+ `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
+ `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL,
`body_utf8` longblob DEFAULT NULL,
PRIMARY KEY (`db`,`name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events'
show create table general_log;
Table Create Table
general_log CREATE TABLE `general_log` (
@@ -218,7 +218,7 @@ general_log CREATE TABLE `general_log` (
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='General log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='General log'
show create table slow_log;
Table Create Table
slow_log CREATE TABLE `slow_log` (
@@ -235,7 +235,7 @@ slow_log CREATE TABLE `slow_log` (
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`rows_affected` int(11) NOT NULL
-) ENGINE=CSV DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='Slow log'
+) ENGINE=CSV DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Slow log'
show create table table_stats;
Table Create Table
table_stats CREATE TABLE `table_stats` (
@@ -243,7 +243,7 @@ table_stats CREATE TABLE `table_stats` (
`table_name` varchar(64) NOT NULL,
`cardinality` bigint(21) unsigned DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Tables'
show create table column_stats;
Table Create Table
column_stats CREATE TABLE `column_stats` (
@@ -259,7 +259,7 @@ column_stats CREATE TABLE `column_stats` (
`hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') DEFAULT NULL,
`histogram` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`column_name`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Columns'
show create table index_stats;
Table Create Table
index_stats CREATE TABLE `index_stats` (
@@ -269,7 +269,7 @@ index_stats CREATE TABLE `index_stats` (
`prefix_arity` int(11) unsigned NOT NULL,
`avg_frequency` decimal(12,4) DEFAULT NULL,
PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
-) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
+) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0 COMMENT='Statistics on Indexes'
DROP VIEW user;
DROP TABLE db, host, func, plugin, tables_priv, columns_priv, procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, proxies_priv, innodb_index_stats, innodb_table_stats, transaction_registry, table_stats, column_stats, index_stats, roles_mapping, gtid_slave_pos, global_priv;
show tables;
diff --git a/mysql-test/main/system_mysql_db_fix50117.test b/mysql-test/main/system_mysql_db_fix50117.test
index 28b8621a638..510cabf08a6 100644
--- a/mysql-test/main/system_mysql_db_fix50117.test
+++ b/mysql-test/main/system_mysql_db_fix50117.test
@@ -37,7 +37,7 @@ CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null,
CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names';
CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones';
CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions';
-CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
+CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types';
CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones';
CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, modified timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures';
CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges';
diff --git a/mysql-test/main/table_value_constr.test b/mysql-test/main/table_value_constr.test
index 51acbe97c27..07197329e10 100644
--- a/mysql-test/main/table_value_constr.test
+++ b/mysql-test/main/table_value_constr.test
@@ -1471,7 +1471,9 @@ insert into t2 values (1), (2);
let $q1=
select (values ((select 2))) from t2;
eval $q1;
+--enable_prepare_warnings
eval explain $q1;
+--disable_prepare_warnings
eval prepare stmt from "$q1";
execute stmt;
execute stmt;
diff --git a/mysql-test/main/tc_heuristic_recover.result b/mysql-test/main/tc_heuristic_recover.result
index 32c3a9779ad..5538781ad38 100644
--- a/mysql-test/main/tc_heuristic_recover.result
+++ b/mysql-test/main/tc_heuristic_recover.result
@@ -22,11 +22,11 @@ NOT FOUND /\[ERROR\] Can\'t init tc log/ in mysqld.1.err
FOUND 2 /was in the XA prepared state/ in mysqld.1.err
FOUND 1 /Found 1 prepared transactions!/ in mysqld.1.err
FOUND 1 /\[ERROR\] Can\'t init tc log/ in mysqld.1.err
-FOUND 1 /Please restart mysqld without --tc-heuristic-recover/ in mysqld.1.err
+FOUND 1 /Please restart without --tc-heuristic-recover/ in mysqld.1.err
FOUND 3 /was in the XA prepared state/ in mysqld.1.err
FOUND 1 /Found 1 prepared transactions!/ in mysqld.1.err
FOUND 2 /\[ERROR\] Can\'t init tc log/ in mysqld.1.err
-FOUND 2 /Please restart mysqld without --tc-heuristic-recover/ in mysqld.1.err
+FOUND 2 /Please restart without --tc-heuristic-recover/ in mysqld.1.err
# restart
FOUND 3 /was in the XA prepared state/ in mysqld.1.err
FOUND 1 /Found 1 prepared transactions!/ in mysqld.1.err
diff --git a/mysql-test/main/tc_heuristic_recover.test b/mysql-test/main/tc_heuristic_recover.test
index 86fea084de8..a69dc5036af 100644
--- a/mysql-test/main/tc_heuristic_recover.test
+++ b/mysql-test/main/tc_heuristic_recover.test
@@ -66,7 +66,7 @@ SELECT * FROM t1;
--source include/search_pattern_in_file.inc
--let SEARCH_PATTERN= \\[ERROR\\] Can\\'t init tc log
--source include/search_pattern_in_file.inc
---let SEARCH_PATTERN= Please restart mysqld without --tc-heuristic-recover
+--let SEARCH_PATTERN= Please restart without --tc-heuristic-recover
--source include/search_pattern_in_file.inc
--error 1
@@ -78,7 +78,7 @@ SELECT * FROM t1;
--source include/search_pattern_in_file.inc
--let SEARCH_PATTERN= \\[ERROR\\] Can\\'t init tc log
--source include/search_pattern_in_file.inc
---let SEARCH_PATTERN= Please restart mysqld without --tc-heuristic-recover
+--let SEARCH_PATTERN= Please restart without --tc-heuristic-recover
--source include/search_pattern_in_file.inc
--source include/start_mysqld.inc
diff --git a/mysql-test/main/temp_table.result b/mysql-test/main/temp_table.result
index 7ecc3dec10d..7f005bde37c 100644
--- a/mysql-test/main/temp_table.result
+++ b/mysql-test/main/temp_table.result
@@ -619,3 +619,15 @@ ERROR 42S02: Unknown table 'test.t2'
#
# End of 10.5 tests
#
+#
+# Record that temporary table locks are always WRITE locks
+#
+CREATE TEMPORARY TABLE t1 (a INT);
+LOCK TABLE t1 READ;
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t1;
+UNLOCK TABLES;
+DROP TABLE t1;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/temp_table.test b/mysql-test/main/temp_table.test
index 57b65655bb0..6ed5dbd88db 100644
--- a/mysql-test/main/temp_table.test
+++ b/mysql-test/main/temp_table.test
@@ -684,3 +684,17 @@ drop temporary table t2;
--echo # End of 10.5 tests
--echo #
+--echo #
+--echo # Record that temporary table locks are always WRITE locks
+--echo #
+
+CREATE TEMPORARY TABLE t1 (a INT);
+LOCK TABLE t1 READ;
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t1;
+UNLOCK TABLES;
+DROP TABLE t1;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/temporal_literal.test b/mysql-test/main/temporal_literal.test
index 6783b19a7d4..5126796dc33 100644
--- a/mysql-test/main/temporal_literal.test
+++ b/mysql-test/main/temporal_literal.test
@@ -243,7 +243,9 @@ SELECT TIMESTAMP('2001-01-01 10:10:10.123456xyz');
SELECT TIMESTAMP('2001-01-01 10:10:10.1234567xyz');
CREATE TABLE t1 (a TIME(6));
+--enable_prepare_warnings
INSERT INTO t1 VALUES (TIME'10:20:30.1234567');
+--disable_prepare_warnings
INSERT INTO t1 VALUES (TIME('10:20:30.1234567'));
SELECT * FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/main/trigger-compat.result b/mysql-test/main/trigger-compat.result
index 656edc63a7d..cb2970890f1 100644
--- a/mysql-test/main/trigger-compat.result
+++ b/mysql-test/main/trigger-compat.result
@@ -169,8 +169,8 @@ Timing AFTER
Created 2022-01-13 08:23:06.47
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='tr1';
TRIGGER_CATALOG def
@@ -198,8 +198,8 @@ ACTION_REFERENCE_NEW_ROW NEW
CREATED 2022-01-13 08:23:06.47
SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER
-CHARACTER_SET_CLIENT utf8
-COLLATION_CONNECTION utf8_general_ci
+CHARACTER_SET_CLIENT utf8mb3
+COLLATION_CONNECTION utf8mb3_general_ci
DATABASE_COLLATION latin1_swedish_ci
SET time_zone=DEFAULT;
# Listing trigger files
@@ -234,8 +234,8 @@ Timing AFTER
Created 2022-01-13 08:23:06.47
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='tr1';
TRIGGER_CATALOG def
@@ -263,8 +263,8 @@ ACTION_REFERENCE_NEW_ROW NEW
CREATED 2022-01-13 08:23:06.47
SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER
-CHARACTER_SET_CLIENT utf8
-COLLATION_CONNECTION utf8_general_ci
+CHARACTER_SET_CLIENT utf8mb3
+COLLATION_CONNECTION utf8mb3_general_ci
DATABASE_COLLATION latin1_swedish_ci
SET time_zone=DEFAULT;
# Listing trigger files
@@ -294,8 +294,8 @@ Timing AFTER
Created 2022-01-13 10:01:48.74
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer root@localhost
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
Trigger tr1
Event DELETE
@@ -311,8 +311,8 @@ Timing AFTER
Created 2022-01-13 10:01:48.73
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='tr1';
TRIGGER_CATALOG def
@@ -340,8 +340,8 @@ ACTION_REFERENCE_NEW_ROW NEW
CREATED 2022-01-13 10:01:48.73
SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER
-CHARACTER_SET_CLIENT utf8
-COLLATION_CONNECTION utf8_general_ci
+CHARACTER_SET_CLIENT utf8mb3
+COLLATION_CONNECTION utf8mb3_general_ci
DATABASE_COLLATION latin1_swedish_ci
SET time_zone=DEFAULT;
# Listing trigger files
@@ -371,8 +371,8 @@ Timing AFTER
Created 2022-01-13 10:01:48.74
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer root@localhost
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
Trigger tr1
Event DELETE
@@ -388,8 +388,8 @@ Timing AFTER
Created 2022-01-13 10:01:48.73
sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer
-character_set_client utf8
-collation_connection utf8_general_ci
+character_set_client utf8mb3
+collation_connection utf8mb3_general_ci
Database Collation latin1_swedish_ci
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME='tr1';
TRIGGER_CATALOG def
@@ -417,8 +417,8 @@ ACTION_REFERENCE_NEW_ROW NEW
CREATED 2022-01-13 10:01:48.73
SQL_MODE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER
-CHARACTER_SET_CLIENT utf8
-COLLATION_CONNECTION utf8_general_ci
+CHARACTER_SET_CLIENT utf8mb3
+COLLATION_CONNECTION utf8mb3_general_ci
DATABASE_COLLATION latin1_swedish_ci
SET time_zone=DEFAULT;
# Listing trigger files
diff --git a/mysql-test/main/trigger.result b/mysql-test/main/trigger.result
index 40f310a43e9..55ca537f992 100644
--- a/mysql-test/main/trigger.result
+++ b/mysql-test/main/trigger.result
@@ -319,7 +319,7 @@ drop table t1;
drop table t3;
create temporary table t1 (i int);
create trigger trg before insert on t1 for each row set @a:=1;
-ERROR HY000: Trigger's 't1' is view, temporary table or sequence
+ERROR HY000: Trigger's 't1' is a view, temporary table or sequence
drop table t1;
create table t1 (x1col char);
create trigger tx1 before insert on t1 for each row set new.x1col = 'x';
@@ -1187,10 +1187,10 @@ CREATE TABLE t1(c INT);
CREATE TABLE t2(c INT);
CREATE DEFINER=longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost
TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYvvv234567890abcdefghijQWERTYvvvjdnkjfbewfjefnkejfnejfnERTYvvvjdnkjfbewfjefnkejfnejfn
TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW SET @a = 2;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYs...' is too long for host name (should be no longer than 255)
DROP TABLE t1;
DROP TABLE t2;
drop table if exists t1;
@@ -2457,3 +2457,41 @@ DROP TABLE t1;
#
# End of 10.3 tests
#
+#
+# Test dropping orphan .trn file
+#
+create table t1 (a int);
+create trigger t1_trg before insert on t1 for each row
+begin
+if isnull(new.a) then
+set new.a:= 1000;
+end if;
+end|
+insert into t1 values (null);
+select * from t1;
+a
+1000
+drop table t1;
+drop trigger t1_trg;
+Warnings:
+Error 1146 Table 'test.t1' doesn't exist
+Warning 4181 Dropped orphan trigger 't1_trg', originally created for table: 't1'
+create table t1 (a int);
+drop trigger t1_trg;
+Warnings:
+Warning 4181 Dropped orphan trigger 't1_trg', originally created for table: 't1'
+create trigger t1_trg_2 before insert on t1 for each row
+begin
+if isnull(new.a) then
+set new.a:= 1000;
+end if;
+end|
+drop trigger t1_trg;
+Warnings:
+Error 1360 Trigger does not exist
+Warning 4181 Dropped orphan trigger 't1_trg', originally created for table: 't1'
+drop trigger t1_trg_2;
+drop table t1;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/trigger.test b/mysql-test/main/trigger.test
index ddbb8555b90..4e51c0ae434 100644
--- a/mysql-test/main/trigger.test
+++ b/mysql-test/main/trigger.test
@@ -762,6 +762,7 @@ drop table t1;
create table t1 (id int, data int, username varchar(16));
insert into t1 (id, data) values (1, 0);
+--enable_prepare_warnings
delimiter |;
create trigger t1_whoupdated before update on t1 for each row
begin
@@ -772,6 +773,7 @@ begin
select count(*) from ((select 1) union (select 2)) as d1 into i;
end|
delimiter ;|
+--disable_prepare_warnings
update t1 set data = 1;
connection addconroot1;
@@ -1416,7 +1418,7 @@ CREATE DEFINER=longer_than_80_45678901234567890123456789012345678901234567890123
TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
--error ER_WRONG_STRING_LENGTH
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYvvv234567890abcdefghijQWERTYvvvjdnkjfbewfjefnkejfnejfnERTYvvvjdnkjfbewfjefnkejfnejfn
TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW SET @a = 2;
# Cleanup.
@@ -2346,6 +2348,7 @@ DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (b VARCHAR(50) NOT NULL);
CREATE TABLE t2 (a VARCHAR(10) NOT NULL DEFAULT '');
+--enable_prepare_warnings
delimiter //;
CREATE TRIGGER trg1 AFTER INSERT ON t2
FOR EACH ROW BEGIN
@@ -2353,6 +2356,7 @@ FOR EACH ROW BEGIN
(@bug51650 IS NULL OR @bug51650 != c.b) AND c.b = NEW.a LIMIT 1 INTO @foo;
END//
delimiter ;//
+--disable_prepare_warnings
SET @bug51650 = 1;
INSERT IGNORE INTO t2 VALUES();
@@ -2793,3 +2797,48 @@ DROP TABLE t1;
--echo #
--echo # End of 10.3 tests
--echo #
+
+--echo #
+--echo # Test dropping orphan .trn file
+--echo #
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+
+create table t1 (a int);
+delimiter |;
+create trigger t1_trg before insert on t1 for each row
+begin
+ if isnull(new.a) then
+ set new.a:= 1000;
+ end if;
+end|
+delimiter ;|
+insert into t1 values (null);
+select * from t1;
+
+--copy_file $MYSQLD_DATADIR/test/t1_trg.TRN $MYSQLD_DATADIR/test/t1_trg.TMP
+drop table t1;
+--copy_file $MYSQLD_DATADIR/test/t1_trg.TMP $MYSQLD_DATADIR/test/t1_trg.TRN
+drop trigger t1_trg;
+create table t1 (a int);
+--copy_file $MYSQLD_DATADIR/test/t1_trg.TMP $MYSQLD_DATADIR/test/t1_trg.TRN
+drop trigger t1_trg;
+
+# Test creating an additonal trigger for t1, but with different names
+delimiter |;
+create trigger t1_trg_2 before insert on t1 for each row
+begin
+ if isnull(new.a) then
+ set new.a:= 1000;
+ end if;
+end|
+delimiter ;|
+--copy_file $MYSQLD_DATADIR/test/t1_trg.TMP $MYSQLD_DATADIR/test/t1_trg.TRN
+drop trigger t1_trg;
+drop trigger t1_trg_2;
+drop table t1;
+--remove_file $MYSQLD_DATADIR/test/t1_trg.TMP
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/type_bit_innodb.result b/mysql-test/main/type_bit_innodb.result
index 9ab8fe00538..67b4ff55674 100644
--- a/mysql-test/main/type_bit_innodb.result
+++ b/mysql-test/main/type_bit_innodb.result
@@ -1,3 +1,5 @@
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
select 0 + b'1';
0 + b'1'
1
@@ -34,7 +36,6 @@ select 0 + b'1111111111111111';
select 0 + b'1000000000000001';
0 + b'1000000000000001'
32769
-drop table if exists t1;
create table t1 (a bit(65)) engine=innodb;
ERROR 42000: Display width out of range for 'a' (max = 64)
create table t1 (a bit(0)) engine=innodb;
@@ -422,3 +423,4 @@ hex(f1) hex(f2)
0 0
0 0
drop table t1;
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/type_bit_innodb.test b/mysql-test/main/type_bit_innodb.test
index bf514ad7453..5fc7c188246 100644
--- a/mysql-test/main/type_bit_innodb.test
+++ b/mysql-test/main/type_bit_innodb.test
@@ -1,4 +1,7 @@
--source include/have_innodb.inc
+SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
+SET GLOBAL innodb_stats_persistent=0;
+
#
# testing of the BIT column type
#
@@ -16,10 +19,6 @@ select 0 + b'1000000000000000';
select 0 + b'1111111111111111';
select 0 + b'1000000000000001';
---disable_warnings
-drop table if exists t1;
---enable_warnings
-
--error 1439
create table t1 (a bit(65)) engine=innodb;
@@ -159,3 +158,5 @@ insert into t1 (f1) values (default);
insert into t1 values (b'',b''),('','');
select hex(f1), hex(f2) from t1;
drop table t1;
+
+SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
diff --git a/mysql-test/main/type_blob.result b/mysql-test/main/type_blob.result
index 850512ff28e..e5ffb898a93 100644
--- a/mysql-test/main/type_blob.result
+++ b/mysql-test/main/type_blob.result
@@ -31,7 +31,7 @@ t3 CREATE TABLE `t3` (
show create TABLE t4;
Table Create Table
t4 CREATE TABLE `t4` (
- `c` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
+ `c` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1,t2,t3,t4;
CREATE TABLE t1 (a char(257) default "hello");
@@ -1081,7 +1081,7 @@ CREATE TABLE t1 (a TEXT(1431655798) CHARACTER SET utf8);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `a` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t1;
create table t1 (a int);
diff --git a/mysql-test/main/type_blob.test b/mysql-test/main/type_blob.test
index 38c8b9a83ca..c61ed124139 100644
--- a/mysql-test/main/type_blob.test
+++ b/mysql-test/main/type_blob.test
@@ -526,14 +526,18 @@ CREATE TABLE b15776 (a char(4294967296));
## When we complain about it, we say that the max is 255. We may be
## talking about different things. It's confusing.
--replace_result 4294967295 ? 0 ?
+--enable_prepare_warnings
CREATE TABLE b15776 (a year(4294967295));
+--disable_prepare_warnings
INSERT INTO b15776 VALUES (42);
SELECT * FROM b15776;
DROP TABLE b15776;
CREATE TABLE b15776 (a year(4294967296));
SHOW CREATE TABLE b15776;
DROP TABLE b15776;
+--enable_prepare_warnings
CREATE TABLE b15776 (a year(0)); # 0 is special case, means default size
+--disable_prepare_warnings
DROP TABLE b15776;
--error ER_PARSE_ERROR
CREATE TABLE b15776 (a year(-2));
diff --git a/mysql-test/main/type_enum.result b/mysql-test/main/type_enum.result
index 4729463dc88..f9300b81b39 100644
--- a/mysql-test/main/type_enum.result
+++ b/mysql-test/main/type_enum.result
@@ -1699,7 +1699,7 @@ a ENUM('ä','ö','ü') character set utf8 default 'ü'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` enum('ä','ö','ü') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'ü'
+ `a` enum('ä','ö','ü') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT 'ü'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('ä'), ('ö'), ('ü');
select a from t1 order by a;
diff --git a/mysql-test/main/type_hex_hybrid.result b/mysql-test/main/type_hex_hybrid.result
index 4a7be588cf6..baca0d592b7 100644
--- a/mysql-test/main/type_hex_hybrid.result
+++ b/mysql-test/main/type_hex_hybrid.result
@@ -9,8 +9,8 @@ CREATE TABLE t1 (a DECIMAL(10,3));
INSERT INTO t1 VALUES (10.0),(10.1);
SELECT CHARSET('a'),CHARSET(0x61),LENGTH(CHARSET('a'))+a,LENGTH(CHARSET(0x61))+a FROM t1;
CHARSET('a') CHARSET(0x61) LENGTH(CHARSET('a'))+a LENGTH(CHARSET(0x61))+a
-utf8 binary 14.000 16.000
-utf8 binary 14.100 16.100
+utf8mb3 binary 17.000 16.000
+utf8mb3 binary 17.100 16.100
SELECT * FROM t1 WHERE LENGTH(CHARSET('a'))+a<=>LENGTH(CHARSET(0x61))+a;
a
EXPLAIN EXTENDED SELECT * FROM t1 WHERE LENGTH(CHARSET('a'))+a<=>LENGTH(CHARSET(0x61))+a;
diff --git a/mysql-test/main/type_nchar.result b/mysql-test/main/type_nchar.result
index ac34dec59b3..5fa1a004aba 100644
--- a/mysql-test/main/type_nchar.result
+++ b/mysql-test/main/type_nchar.result
@@ -3,48 +3,48 @@ create table t1 (c nchar(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c national char(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` char(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c national varchar(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c nvarchar(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c nchar varchar(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c national character varying(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
create table t1 (c nchar varying(10));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `c` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1;
diff --git a/mysql-test/main/type_newdecimal.test b/mysql-test/main/type_newdecimal.test
index 070b465b71a..d30a2f0067b 100644
--- a/mysql-test/main/type_newdecimal.test
+++ b/mysql-test/main/type_newdecimal.test
@@ -1362,9 +1362,11 @@ DESC t1;
SELECT * FROM t1;
DROP TABLE t1;
+--enable_prepare_warnings
CREATE TABLE t1 SELECT
/* 82 */ 1000000000000000000000000000000000000000000000000000000000000000000000000000000001
AS c1;
+--disable_prepare_warnings
DESC t1;
SELECT * FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/main/type_ranges.result b/mysql-test/main/type_ranges.result
index 784a394d8b5..02b6c79bdf5 100644
--- a/mysql-test/main/type_ranges.result
+++ b/mysql-test/main/type_ranges.result
@@ -65,21 +65,21 @@ longblob_col longblob NULL NO '' #
options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
flags set('one','two','tree') latin1_swedish_ci NO #
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 auto A 0 NULL NULL BTREE
-t1 1 utiny 1 utiny A NULL NULL NULL BTREE
-t1 1 tiny 1 tiny A NULL NULL NULL BTREE
-t1 1 short 1 short A NULL NULL NULL BTREE
-t1 1 any_name 1 medium A NULL NULL NULL BTREE
-t1 1 longlong 1 longlong A NULL NULL NULL BTREE
-t1 1 real_float 1 real_float A NULL NULL NULL BTREE
-t1 1 ushort 1 ushort A NULL NULL NULL BTREE
-t1 1 umedium 1 umedium A NULL NULL NULL BTREE
-t1 1 ulong 1 ulong A NULL NULL NULL BTREE
-t1 1 ulonglong 1 ulonglong A NULL NULL NULL BTREE
-t1 1 ulonglong 2 ulong A NULL NULL NULL BTREE
-t1 1 options 1 options A NULL NULL NULL BTREE
-t1 1 options 2 flags A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
+t1 0 PRIMARY 1 auto A 0 NULL NULL BTREE NO
+t1 1 utiny 1 utiny A NULL NULL NULL BTREE NO
+t1 1 tiny 1 tiny A NULL NULL NULL BTREE NO
+t1 1 short 1 short A NULL NULL NULL BTREE NO
+t1 1 any_name 1 medium A NULL NULL NULL BTREE NO
+t1 1 longlong 1 longlong A NULL NULL NULL BTREE NO
+t1 1 real_float 1 real_float A NULL NULL NULL BTREE NO
+t1 1 ushort 1 ushort A NULL NULL NULL BTREE NO
+t1 1 umedium 1 umedium A NULL NULL NULL BTREE NO
+t1 1 ulong 1 ulong A NULL NULL NULL BTREE NO
+t1 1 ulonglong 1 ulonglong A NULL NULL NULL BTREE NO
+t1 1 ulonglong 2 ulong A NULL NULL NULL BTREE NO
+t1 1 options 1 options A NULL NULL NULL BTREE NO
+t1 1 options 2 flags A NULL NULL NULL BTREE NO
CREATE UNIQUE INDEX test on t1 ( auto ) ;
CREATE INDEX test2 on t1 ( ulonglong,ulong) ;
Warnings:
diff --git a/mysql-test/main/type_year.test b/mysql-test/main/type_year.test
index 08ac95793c3..7672fa94968 100644
--- a/mysql-test/main/type_year.test
+++ b/mysql-test/main/type_year.test
@@ -2,6 +2,8 @@
# Test year
#
+--enable_prepare_warnings
+
create table t1 (y year,y2 year(2));
insert into t1 values (0,0),(1999,1999),(2000,2000),(2001,2001),(70,70),(69,69);
select * from t1;
@@ -377,7 +379,7 @@ SELECT MAX(NULLIF(a, 1970)) AS f FROM t1;
--enable_view_protocol
DROP TABLE t1;
-
+--disable_prepare_warnings
--echo #
--echo # End of 10.5 tests
--echo #
diff --git a/mysql-test/main/union.result b/mysql-test/main/union.result
index 3ad3d9aa2f8..aab13d191a4 100644
--- a/mysql-test/main/union.result
+++ b/mysql-test/main/union.result
@@ -1272,8 +1272,8 @@ c ENUM("one", "two")
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
- `a` enum('ä','ö','ü') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'ü',
- `b` enum('one','two') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `a` enum('ä','ö','ü') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT 'ü',
+ `b` enum('one','two') CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`c` enum('one','two') DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
insert into t1 values ('ä', 'one', 'one'), ('ö', 'two', 'one'), ('ü', NULL, NULL);
@@ -1444,9 +1444,9 @@ t2 CREATE TABLE `t2` (
`f3` binary(1) DEFAULT NULL,
`f4` binary(5) DEFAULT NULL,
`f5` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
- `f6` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
+ `f6` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`f7` text DEFAULT NULL,
- `f8` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `f8` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1, t2;
CREATE TABLE t1
@@ -1464,10 +1464,10 @@ SELECT c_varchar, c_varchar, c_varchar, c_varchar FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
- `c_tinytext` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c_text` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c_mediumtext` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
- `c_longtext` longtext CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
+ `c_tinytext` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c_text` mediumtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c_mediumtext` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `c_longtext` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
DROP TABLE t2;
DROP TABLE t1;
diff --git a/mysql-test/main/union.test b/mysql-test/main/union.test
index 31c02edb324..4ced290480a 100644
--- a/mysql-test/main/union.test
+++ b/mysql-test/main/union.test
@@ -90,6 +90,7 @@ select 1 as a,(select a union select a);
SELECT @a:=1 UNION SELECT @a:=@a+1;
--error ER_BAD_FIELD_ERROR
(SELECT 1) UNION (SELECT 2) ORDER BY (SELECT a);
+--sorted_result
(SELECT 1,3) UNION (SELECT 2,1) ORDER BY (SELECT 2);
#
@@ -996,7 +997,9 @@ DROP TABLE t1;
select @var;
--error ER_PARSE_ERROR
(select 2) union (select 1 into @var);
+--enable_prepare_warnings
(select 1) union (select 1) into @var;
+--disable_prepare_warnings
--error ER_TOO_MANY_ROWS
(select 2) union (select 1) into @var;
@@ -1124,9 +1127,11 @@ SELECT a FROM t1 UNION SELECT a INTO @v FROM t1;
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file5' FROM t1;
--error ER_PARSE_ERROR
SELECT a FROM t1 UNION SELECT a INTO OUTFILE 'union.out.file6' FROM t1;
+--enable_prepare_warnings
SELECT a FROM t1 UNION SELECT a FROM t1 INTO @v ;
SELECT a FROM t1 UNION SELECT a FROM t1 INTO OUTFILE 'union.out.file5';
SELECT a FROM t1 UNION SELECT a FROM t1 INTO OUTFILE 'union.out.file6';
+--disable_prepare_warnings
--error ER_PARSE_ERROR
SELECT a INTO @v FROM t1 UNION SELECT a FROM t1;
--error ER_PARSE_ERROR
diff --git a/mysql-test/main/update_use_source.result b/mysql-test/main/update_use_source.result
index 57787671e77..5a9e0a7750c 100644
--- a/mysql-test/main/update_use_source.result
+++ b/mysql-test/main/update_use_source.result
@@ -1,4 +1,4 @@
-create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDb;
+create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDB STATS_PERSISTENT=0;
create view v1 as select * from t1 where c2=2;
create trigger trg_t1 before update on t1 for each row
begin
diff --git a/mysql-test/main/update_use_source.test b/mysql-test/main/update_use_source.test
index a73bbba7613..1b765138a18 100644
--- a/mysql-test/main/update_use_source.test
+++ b/mysql-test/main/update_use_source.test
@@ -2,7 +2,7 @@
--source include/have_innodb.inc
--source include/no_valgrind_without_big.inc
-create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDb;
+create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDB STATS_PERSISTENT=0;
create view v1 as select * from t1 where c2=2;
delimiter /;
create trigger trg_t1 before update on t1 for each row
diff --git a/mysql-test/main/upgrade.result b/mysql-test/main/upgrade.result
index 13c9f2a546c..4e8cca3830d 100644
--- a/mysql-test/main/upgrade.result
+++ b/mysql-test/main/upgrade.result
@@ -110,7 +110,7 @@ Database (%a-b-c%)
a-b-c
show create view `a-b-c`.v1;
View Create View character_set_client collation_connection
-v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `a`.`f1` AS `f1` from (`a-b-c`.`t1` `a` join `information_schema`.`tables` `b`) where convert(`a`.`f1` using utf8) = `b`.`TABLE_NAME` utf8 utf8_general_ci
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `a`.`f1` AS `f1` from (`a-b-c`.`t1` `a` join `information_schema`.`tables` `b`) where convert(`a`.`f1` using utf8mb3) = `b`.`TABLE_NAME` utf8mb3 utf8mb3_general_ci
select * from `a-b-c`.v1;
f1
drop database `a-b-c`;
diff --git a/mysql-test/main/upgrade_MDEV-19650.result b/mysql-test/main/upgrade_MDEV-19650.result
index ce9cb975682..90f2d7b0aa7 100644
--- a/mysql-test/main/upgrade_MDEV-19650.result
+++ b/mysql-test/main/upgrade_MDEV-19650.result
@@ -136,6 +136,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -149,6 +249,8 @@ mysqltest1.save_global_priv OK
mysqltest1.save_proxies_priv OK
mysqltest1.save_tables_priv OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/upgrade_MDEV-23102-1.result b/mysql-test/main/upgrade_MDEV-23102-1.result
index 8caa49180ee..35bcc41bc33 100644
--- a/mysql-test/main/upgrade_MDEV-23102-1.result
+++ b/mysql-test/main/upgrade_MDEV-23102-1.result
@@ -156,6 +156,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -169,6 +269,8 @@ mysqltest1.save_global_priv OK
mysqltest1.save_proxies_priv OK
mysqltest1.save_tables_priv OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -252,6 +354,106 @@ Error : Unknown storage engine 'InnoDB'
error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -265,6 +467,8 @@ mysqltest1.save_global_priv OK
mysqltest1.save_proxies_priv OK
mysqltest1.save_tables_priv OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/upgrade_MDEV-23102-2.result b/mysql-test/main/upgrade_MDEV-23102-2.result
index 4702fae812f..c6d4aaf31a9 100644
--- a/mysql-test/main/upgrade_MDEV-23102-2.result
+++ b/mysql-test/main/upgrade_MDEV-23102-2.result
@@ -140,6 +140,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -153,6 +253,8 @@ mysqltest1.save_global_priv OK
mysqltest1.save_proxies_priv OK
mysqltest1.save_tables_priv OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
@@ -228,6 +330,106 @@ Error : Unknown storage engine 'InnoDB'
error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -241,6 +443,8 @@ mysqltest1.save_global_priv OK
mysqltest1.save_proxies_priv OK
mysqltest1.save_tables_priv OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/upgrade_geometrycolumn_procedure_definer.result b/mysql-test/main/upgrade_geometrycolumn_procedure_definer.result
index 58cd91f706d..8965b8a16f4 100644
--- a/mysql-test/main/upgrade_geometrycolumn_procedure_definer.result
+++ b/mysql-test/main/upgrade_geometrycolumn_procedure_definer.result
@@ -86,6 +86,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -95,6 +195,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/upgrade_mdev_24363.result b/mysql-test/main/upgrade_mdev_24363.result
index d507193088e..50fc2d7bcc3 100644
--- a/mysql-test/main/upgrade_mdev_24363.result
+++ b/mysql-test/main/upgrade_mdev_24363.result
@@ -100,6 +100,106 @@ error : Corrupt
Phase 2/7: Installing used storage engines... Skipped
Phase 3/7: Fixing views
mysql.user OK
+sys.host_summary OK
+sys.host_summary_by_file_io OK
+sys.host_summary_by_file_io_type OK
+sys.host_summary_by_stages OK
+sys.host_summary_by_statement_latency OK
+sys.host_summary_by_statement_type OK
+sys.innodb_buffer_stats_by_schema OK
+sys.innodb_buffer_stats_by_table OK
+sys.innodb_lock_waits OK
+sys.io_by_thread_by_latency OK
+sys.io_global_by_file_by_bytes OK
+sys.io_global_by_file_by_latency OK
+sys.io_global_by_wait_by_bytes OK
+sys.io_global_by_wait_by_latency OK
+sys.latest_file_io OK
+sys.memory_by_host_by_current_bytes OK
+sys.memory_by_thread_by_current_bytes OK
+sys.memory_by_user_by_current_bytes OK
+sys.memory_global_by_current_bytes OK
+sys.memory_global_total OK
+sys.metrics OK
+sys.processlist OK
+sys.ps_check_lost_instrumentation OK
+sys.schema_auto_increment_columns OK
+sys.schema_index_statistics OK
+sys.schema_object_overview OK
+sys.schema_redundant_indexes OK
+sys.schema_table_lock_waits OK
+sys.schema_table_statistics OK
+sys.schema_table_statistics_with_buffer OK
+sys.schema_tables_with_full_table_scans OK
+sys.schema_unused_indexes OK
+sys.session OK
+sys.session_ssl_status OK
+sys.statement_analysis OK
+sys.statements_with_errors_or_warnings OK
+sys.statements_with_full_table_scans OK
+sys.statements_with_runtimes_in_95th_percentile OK
+sys.statements_with_sorting OK
+sys.statements_with_temp_tables OK
+sys.user_summary OK
+sys.user_summary_by_file_io OK
+sys.user_summary_by_file_io_type OK
+sys.user_summary_by_stages OK
+sys.user_summary_by_statement_latency OK
+sys.user_summary_by_statement_type OK
+sys.version OK
+sys.wait_classes_global_by_avg_latency OK
+sys.wait_classes_global_by_latency OK
+sys.waits_by_host_by_latency OK
+sys.waits_by_user_by_latency OK
+sys.waits_global_by_latency OK
+sys.x$host_summary OK
+sys.x$host_summary_by_file_io OK
+sys.x$host_summary_by_file_io_type OK
+sys.x$host_summary_by_stages OK
+sys.x$host_summary_by_statement_latency OK
+sys.x$host_summary_by_statement_type OK
+sys.x$innodb_buffer_stats_by_schema OK
+sys.x$innodb_buffer_stats_by_table OK
+sys.x$innodb_lock_waits OK
+sys.x$io_by_thread_by_latency OK
+sys.x$io_global_by_file_by_bytes OK
+sys.x$io_global_by_file_by_latency OK
+sys.x$io_global_by_wait_by_bytes OK
+sys.x$io_global_by_wait_by_latency OK
+sys.x$latest_file_io OK
+sys.x$memory_by_host_by_current_bytes OK
+sys.x$memory_by_thread_by_current_bytes OK
+sys.x$memory_by_user_by_current_bytes OK
+sys.x$memory_global_by_current_bytes OK
+sys.x$memory_global_total OK
+sys.x$processlist OK
+sys.x$ps_digest_95th_percentile_by_avg_us OK
+sys.x$ps_digest_avg_latency_distribution OK
+sys.x$ps_schema_table_statistics_io OK
+sys.x$schema_flattened_keys OK
+sys.x$schema_index_statistics OK
+sys.x$schema_table_lock_waits OK
+sys.x$schema_table_statistics OK
+sys.x$schema_table_statistics_with_buffer OK
+sys.x$schema_tables_with_full_table_scans OK
+sys.x$session OK
+sys.x$statement_analysis OK
+sys.x$statements_with_errors_or_warnings OK
+sys.x$statements_with_full_table_scans OK
+sys.x$statements_with_runtimes_in_95th_percentile OK
+sys.x$statements_with_sorting OK
+sys.x$statements_with_temp_tables OK
+sys.x$user_summary OK
+sys.x$user_summary_by_file_io OK
+sys.x$user_summary_by_file_io_type OK
+sys.x$user_summary_by_stages OK
+sys.x$user_summary_by_statement_latency OK
+sys.x$user_summary_by_statement_type OK
+sys.x$wait_classes_global_by_avg_latency OK
+sys.x$wait_classes_global_by_latency OK
+sys.x$waits_by_host_by_latency OK
+sys.x$waits_by_user_by_latency OK
+sys.x$waits_global_by_latency OK
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
@@ -109,6 +209,8 @@ mtr
mtr.global_suppressions OK
mtr.test_suppressions OK
performance_schema
+sys
+sys.sys_config OK
test
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
diff --git a/mysql-test/main/user_var.result b/mysql-test/main/user_var.result
index 36c518d00e9..a5837996c19 100644
--- a/mysql-test/main/user_var.result
+++ b/mysql-test/main/user_var.result
@@ -368,13 +368,18 @@ select @rownum := @rownum + 1 as row,
from t1 order by score desc;
drop table t1;
create table t1(b bigint);
-insert into t1 (b) values (10), (30), (10);
+insert into t1 (b) values (10), (30), (10), (10);
+set @var := 0;
+explain select if(b=@var, 999, b) , @var := b from t1 order by b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using filesort
set @var := 0;
select if(b=@var, 999, b) , @var := b from t1 order by b;
if(b=@var, 999, b) @var := b
10 10
-999 10
30 30
+999 10
+999 10
drop table t1;
create temporary table t1 (id int);
insert into t1 values (2), (3), (3), (4);
diff --git a/mysql-test/main/user_var.test b/mysql-test/main/user_var.test
index dad50c439b6..589043f096e 100644
--- a/mysql-test/main/user_var.test
+++ b/mysql-test/main/user_var.test
@@ -265,8 +265,11 @@ drop table t1;
#
create table t1(b bigint);
-insert into t1 (b) values (10), (30), (10);
+insert into t1 (b) values (10), (30), (10), (10);
set @var := 0;
+explain select if(b=@var, 999, b) , @var := b from t1 order by b;
+set @var := 0;
+--sorted_result
select if(b=@var, 999, b) , @var := b from t1 order by b;
drop table t1;
diff --git a/mysql-test/main/userstat.test b/mysql-test/main/userstat.test
index 6d486810db1..5691a2dc890 100644
--- a/mysql-test/main/userstat.test
+++ b/mysql-test/main/userstat.test
@@ -7,7 +7,9 @@
-- source include/have_log_bin.inc
-- source include/have_perfschema.inc
+--enable_prepare_warnings
select variable_value from information_schema.global_status where variable_name="handler_read_key" into @global_read_key;
+--disable_prepare_warnings
show columns from information_schema.client_statistics;
show columns from information_schema.user_statistics;
show columns from information_schema.index_statistics;
diff --git a/mysql-test/main/variables.result b/mysql-test/main/variables.result
index 1fd832b6b35..3f367ef4599 100644
--- a/mysql-test/main/variables.result
+++ b/mysql-test/main/variables.result
@@ -859,7 +859,7 @@ select @@max_heap_table_size > 0;
1
select @@character_set_system;
@@character_set_system
-utf8
+utf8mb3
set global character_set_system = latin1;
ERROR HY000: Variable 'character_set_system' is a read only variable
set @@global.version_compile_os='234';
@@ -1390,7 +1390,7 @@ Warning 1292 Truncated incorrect expire_logs_days value: '-1'
needs to've been adjusted (0)
SELECT @@global.expire_logs_days;
@@global.expire_logs_days
-0
+0.000000
SET GLOBAL expire_logs_days = 11;
SET @old_mode=@@sql_mode;
SET SESSION sql_mode = 'TRADITIONAL';
@@ -1399,7 +1399,7 @@ ERROR 42000: Variable 'expire_logs_days' can't be set to the value of '100'
needs to be unchanged (11)
SELECT @@global.expire_logs_days;
@@global.expire_logs_days
-11
+11.000000
SET SESSION sql_mode = @old_mode;
SET GLOBAL expire_logs_days = 100;
Warnings:
@@ -1407,13 +1407,13 @@ Warning 1292 Truncated incorrect expire_logs_days value: '100'
needs to've been adjusted (99)
SELECT @@global.expire_logs_days;
@@global.expire_logs_days
-99
+99.000000
SET GLOBAL expire_logs_days = 11;
SET GLOBAL expire_logs_days = 99;
needs to pass with no warnings (99)
SELECT @@global.expire_logs_days;
@@global.expire_logs_days
-99
+99.000000
SET GLOBAL expire_logs_days = @old_eld;
SET GLOBAL auto_increment_offset=-1;
Warnings:
diff --git a/mysql-test/main/view.result b/mysql-test/main/view.result
index c3696b8e52e..aec4a5d09f2 100644
--- a/mysql-test/main/view.result
+++ b/mysql-test/main/view.result
@@ -610,7 +610,7 @@ insert into t1 values(5,'Hello, world of views');
create view v1 as select * from t1;
create view v2 as select * from v1;
update v2 set col2='Hello, view world';
-select is_updatable from information_schema.views;
+select is_updatable from information_schema.views where table_schema <> 'sys';
is_updatable
YES
YES
@@ -2909,10 +2909,10 @@ DROP VIEW IF EXISTS v2;
CREATE TABLE t1(a INT, b INT);
CREATE DEFINER=longer_than_80_456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789@localhost
VIEW v1 AS SELECT a FROM t1;
-ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 80)
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+ERROR HY000: String 'longer_than_80_4567890123456789012345678901234567890123456789012345...' is too long for user name (should be no longer than 128)
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
VIEW v2 AS SELECT b FROM t1;
-ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY' is too long for host name (should be no longer than 60)
+ERROR HY000: String '1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYa...' is too long for host name (should be no longer than 255)
DROP TABLE t1;
DROP FUNCTION IF EXISTS f1;
DROP FUNCTION IF EXISTS f2;
@@ -3680,7 +3680,7 @@ c1 c2
2 2
CREATE VIEW v1 AS SELECT c1, c2 FROM t1;
SHOW INDEX FROM v1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
SELECT * FROM v1 USE INDEX (PRIMARY) WHERE c1=2;
ERROR 42000: Key 'PRIMARY' doesn't exist in table 'v1'
SELECT * FROM v1 FORCE INDEX (PRIMARY) WHERE c1=2;
@@ -6952,3 +6952,46 @@ select * from t1 left join t2 on t1.a=t2.b and t1.a in (select d from t3);
ERROR 42S22: Unknown column 'd' in 'field list'
drop table t1,t2,t3;
# End of 10.4 tests
+#
+# MDEV-13115: SELECT .. SKIP LOCKED - ensure SHOW CREATE VIEW is correct
+#
+CREATE TABLE t1 (id int, foo int);
+CREATE VIEW v1 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 LOCK IN SHARE MODE;
+CREATE VIEW v2 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 FOR UPDATE;
+CREATE VIEW v3 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 LOCK IN SHARE MODE SKIP LOCKED;
+CREATE VIEW v4 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 FOR UPDATE SKIP LOCKED;
+SHOW CREATE VIEW v1;
+View Create View character_set_client collation_connection
+v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`id` AS `id`,ifnull(`t1`.`foo`,'') AS `foo` from `t1` lock in share mode latin1 latin1_swedish_ci
+SHOW CREATE VIEW v2;
+View Create View character_set_client collation_connection
+v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`id` AS `id`,ifnull(`t1`.`foo`,'') AS `foo` from `t1` for update latin1 latin1_swedish_ci
+SHOW CREATE VIEW v3;
+View Create View character_set_client collation_connection
+v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`id` AS `id`,ifnull(`t1`.`foo`,'') AS `foo` from `t1` lock in share mode skip locked latin1 latin1_swedish_ci
+SHOW CREATE VIEW v4;
+View Create View character_set_client collation_connection
+v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`id` AS `id`,ifnull(`t1`.`foo`,'') AS `foo` from `t1` for update skip locked latin1 latin1_swedish_ci
+Drop View v1;
+Drop View v2;
+Drop View v3;
+Drop View v4;
+Drop table t1;
+#
+# MDEV-26456: SIGSEGV in flush_tables_with_read_lock on FLUSH TABLE
+#
+CREATE FUNCTION f() RETURNS INT RETURN (SELECT 1 FROM t);
+CREATE VIEW v AS SELECT f();
+SELECT * FROM v;
+ERROR HY000: View 'test.v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+FLUSH TABLE v WITH READ LOCK;
+UNLOCK TABLES;
+FLUSH TABLES v FOR EXPORT;
+UNLOCK TABLES;
+SELECT * FROM v;
+ERROR HY000: View 'test.v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+DROP VIEW v;
+DROP FUNCTION f;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/view.test b/mysql-test/main/view.test
index 408c8eb2830..c6cc9a69f93 100644
--- a/mysql-test/main/view.test
+++ b/mysql-test/main/view.test
@@ -500,7 +500,7 @@ insert into t1 values(5,'Hello, world of views');
create view v1 as select * from t1;
create view v2 as select * from v1;
update v2 set col2='Hello, view world';
-select is_updatable from information_schema.views;
+select is_updatable from information_schema.views where table_schema <> 'sys';
select * from t1;
drop view v2, v1;
drop table t1;
@@ -2282,6 +2282,7 @@ CREATE VIEW v1 AS SELECT 42 AS Meaning;
DROP FUNCTION IF EXISTS f1;
--enable_warnings
DELIMITER //;
+--enable_prepare_warnings
CREATE FUNCTION f1() RETURNS INTEGER
BEGIN
DECLARE retn INTEGER;
@@ -2290,6 +2291,7 @@ BEGIN
END
//
DELIMITER ;//
+--disable_prepare_warnings
CREATE VIEW v2 AS SELECT f1();
select * from v2;
drop view v2,v1;
@@ -2466,6 +2468,7 @@ drop view t1, v1;
# using SP function
create table t1 (a int);
delimiter //;
+--enable_prepare_warnings
create function f1() returns int
begin
declare mx int;
@@ -2473,6 +2476,7 @@ begin
return mx;
end//
delimiter ;//
+--disable_prepare_warnings
create view v1 as select f1() as a;
create view v2 as select * from v1;
drop table t1;
@@ -2802,7 +2806,7 @@ CREATE DEFINER=longer_than_80_45678901234567890123456789012345678901234567890123
VIEW v1 AS SELECT a FROM t1;
--error ER_WRONG_STRING_LENGTH
-CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
+CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYsome_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTYabcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY
VIEW v2 AS SELECT b FROM t1;
# Cleanup.
@@ -3071,7 +3075,9 @@ create view v1 as select * from t1 order by f2;
select * from v1;
explain extended select * from v1;
select * from v1 order by f1;
+--enable_prepare_warnings
explain extended select * from v1 order by f1;
+--disable_prepare_warnings
drop view v1;
drop table t1;
@@ -3105,12 +3111,13 @@ DROP VIEW IF EXISTS v1;
let $query = SELECT * FROM (SELECT 1) AS t into @w;
+--enable_prepare_warnings
eval $query;
--error ER_PARSE_ERROR
eval CREATE VIEW v1 AS $query;
--echo # Previously the following would fail.
eval $query;
-
+--disable_prepare_warnings
#
# Bug#24532 The return data type of IS TRUE is different from similar operations
@@ -3873,11 +3880,13 @@ CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT);
delimiter //;
+--enable_prepare_warnings
CREATE FUNCTION f1() RETURNS INT
BEGIN
SELECT a FROM v2 INTO @a;
RETURN @a;
END//
+--disable_prepare_warnings
delimiter ;//
--echo # Trigger pre-locking when opening v2.
@@ -4411,7 +4420,9 @@ CREATE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT f1 FROM t1;
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT f1 FROM v1 ORDER BY f1;
SELECT * FROM v2 AS a1, v2 AS a2;
+--enable_prepare_warnings
EXPLAIN EXTENDED SELECT * FROM v2 AS a1, v2 AS a2;
+--disable_prepare_warnings
DROP VIEW v1, v2;
DROP TABLE t1;
@@ -6685,3 +6696,49 @@ create algorithm=merge view v as
drop table t1,t2,t3;
--echo # End of 10.4 tests
+
+--echo #
+--echo # MDEV-13115: SELECT .. SKIP LOCKED - ensure SHOW CREATE VIEW is correct
+--echo #
+
+# Note: MDEV-10063 - LOCK IN SHARE MODE/FOR UPDATE/SKIP LOCKED ignored in views
+
+CREATE TABLE t1 (id int, foo int);
+CREATE VIEW v1 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 LOCK IN SHARE MODE;
+CREATE VIEW v2 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 FOR UPDATE;
+CREATE VIEW v3 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 LOCK IN SHARE MODE SKIP LOCKED;
+CREATE VIEW v4 AS SELECT id, IFNULL(foo,'') AS foo FROM t1 FOR UPDATE SKIP LOCKED;
+
+SHOW CREATE VIEW v1;
+SHOW CREATE VIEW v2;
+SHOW CREATE VIEW v3;
+SHOW CREATE VIEW v4;
+
+#Cleanup
+Drop View v1;
+Drop View v2;
+Drop View v3;
+Drop View v4;
+Drop table t1;
+
+--echo #
+--echo # MDEV-26456: SIGSEGV in flush_tables_with_read_lock on FLUSH TABLE
+--echo #
+
+CREATE FUNCTION f() RETURNS INT RETURN (SELECT 1 FROM t);
+CREATE VIEW v AS SELECT f();
+--error ER_VIEW_INVALID
+SELECT * FROM v;
+FLUSH TABLE v WITH READ LOCK;
+UNLOCK TABLES;
+FLUSH TABLES v FOR EXPORT;
+UNLOCK TABLES;
+--error ER_VIEW_INVALID
+SELECT * FROM v;
+
+DROP VIEW v;
+DROP FUNCTION f;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/view_grant.result b/mysql-test/main/view_grant.result
index 04e3d013b48..370035147a1 100644
--- a/mysql-test/main/view_grant.result
+++ b/mysql-test/main/view_grant.result
@@ -1954,3 +1954,18 @@ connection default;
drop user user_11766767;
drop database mysqltest1;
drop database mysqltest2;
+# Check that a user without access to the schema 'foo' cannot query
+# a JSON_TABLE view in that schema.
+CREATE SCHEMA foo;
+CREATE VIEW foo.v AS SELECT * FROM JSON_TABLE('[1,2,3]', '$[*]' COLUMNS (num INT PATH '$[0]')) AS jt;
+CREATE USER foo@localhost;
+connect con1,localhost,foo,,;
+SELECT * FROM foo.v;
+ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `foo`.`v`
+#
+# Clean-up.
+#
+connection default;
+disconnect con1;
+drop user foo@localhost;
+drop schema foo;
diff --git a/mysql-test/main/view_grant.test b/mysql-test/main/view_grant.test
index c9bb9569145..83bbeb3be77 100644
--- a/mysql-test/main/view_grant.test
+++ b/mysql-test/main/view_grant.test
@@ -494,10 +494,12 @@ create table t2 (s1 int);
--disable_warnings
drop function if exists f2;
--enable_warnings
+--enable_prepare_warnings
delimiter //;
create function f2 () returns int begin declare v int; select s1 from t2
into v; return v; end//
delimiter ;//
+--disable_prepare_warnings
create algorithm=TEMPTABLE view v1 as select f2() from t1;
create algorithm=MERGE view v2 as select f2() from t1;
create algorithm=TEMPTABLE SQL SECURITY INVOKER view v3 as select f2() from t1;
@@ -548,10 +550,12 @@ create table t2 (s1 int);
--disable_warnings
drop function if exists f2;
--enable_warnings
+--enable_prepare_warnings
delimiter //;
create function f2 () returns int begin declare v int; select s1 from t2
into v; return v; end//
delimiter ;//
+--disable_prepare_warnings
create user mysqltest_1@localhost;
grant select on t1 to mysqltest_1@localhost;
grant execute on function f2 to mysqltest_1@localhost;
@@ -2205,5 +2209,24 @@ drop user user_11766767;
drop database mysqltest1;
drop database mysqltest2;
+--echo # Check that a user without access to the schema 'foo' cannot query
+--echo # a JSON_TABLE view in that schema.
+CREATE SCHEMA foo;
+CREATE VIEW foo.v AS SELECT * FROM JSON_TABLE('[1,2,3]', '$[*]' COLUMNS (num INT PATH '$[0]')) AS jt;
+
+CREATE USER foo@localhost;
+connect (con1,localhost,foo,,);
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT * FROM foo.v;
+
+--echo #
+--echo # Clean-up.
+--echo #
+connection default;
+disconnect con1;
+drop user foo@localhost;
+drop schema foo;
+
# Wait till we reached the initial number of concurrent sessions
--source include/wait_until_count_sessions.inc
+
diff --git a/mysql-test/main/win.result b/mysql-test/main/win.result
index 96b13010516..48eea7a3add 100644
--- a/mysql-test/main/win.result
+++ b/mysql-test/main/win.result
@@ -4278,6 +4278,7 @@ SUM(b) OVER (PARTITION BY a) ROW_NUMBER() OVER (PARTITION BY b)
Warnings:
Warning 1292 Truncated incorrect INTEGER value: 'foo'
Warning 1292 Truncated incorrect INTEGER value: 'foo'
+Warning 1292 Truncated incorrect INTEGER value: 'foo'
Warning 1292 Truncated incorrect DOUBLE value: 'bar'
Warning 1292 Truncated incorrect DOUBLE value: 'bar'
drop table t1;
@@ -4391,3 +4392,27 @@ row_number() OVER (order by a)
2
3
drop table t1;
+#
+# MDEV-28206 SIGSEGV in Item_field::fix_fields when using LEAD...OVER
+#
+CREATE TABLE t(c1 INT);
+CREATE FUNCTION f() RETURNS INT READS SQL DATA BEGIN
+DECLARE v INT;
+SELECT 1 INTO v FROM (SELECT c1,COALESCE(LEAD(a2.c1) OVER (PARTITION BY a2.c1 ORDER BY a2.c1),a2.c1) AS a1 FROM (t a2 JOIN t a3 USING (c1))) a4;
+RETURN 1;
+END//
+SELECT f(),f();
+f() f()
+1 1
+EXECUTE IMMEDIATE "SELECT LEAD(c1) OVER (ORDER BY c1) FROM t NATURAL JOIN t AS a;";
+LEAD(c1) OVER (ORDER BY c1)
+EXECUTE IMMEDIATE "SELECT SUM(c1) OVER (ORDER BY c1) FROM t NATURAL JOIN t AS a;";
+SUM(c1) OVER (ORDER BY c1)
+EXECUTE IMMEDIATE "SELECT LEAD(c) OVER (ORDER BY c) FROM (SELECT 1 AS c) AS a NATURAL JOIN (SELECT 1 AS c) AS b;";
+LEAD(c) OVER (ORDER BY c)
+NULL
+DROP FUNCTION f;
+DROP TABLE t;
+#
+# End of 10.6 tests
+#
diff --git a/mysql-test/main/win.test b/mysql-test/main/win.test
index 472f3529e98..0cc929ce46b 100644
--- a/mysql-test/main/win.test
+++ b/mysql-test/main/win.test
@@ -2869,3 +2869,31 @@ create table t1 (a int);
insert into t1 values (1),(2),(3);
SELECT row_number() OVER (order by a) FROM t1 order by NAME_CONST('myname',NULL);
drop table t1;
+
+--echo #
+--echo # MDEV-28206 SIGSEGV in Item_field::fix_fields when using LEAD...OVER
+--echo #
+
+CREATE TABLE t(c1 INT);
+
+DELIMITER //;
+CREATE FUNCTION f() RETURNS INT READS SQL DATA BEGIN
+ DECLARE v INT;
+ SELECT 1 INTO v FROM (SELECT c1,COALESCE(LEAD(a2.c1) OVER (PARTITION BY a2.c1 ORDER BY a2.c1),a2.c1) AS a1 FROM (t a2 JOIN t a3 USING (c1))) a4;
+ RETURN 1;
+END//
+DELIMITER ;//
+
+SELECT f(),f();
+
+EXECUTE IMMEDIATE "SELECT LEAD(c1) OVER (ORDER BY c1) FROM t NATURAL JOIN t AS a;";
+EXECUTE IMMEDIATE "SELECT SUM(c1) OVER (ORDER BY c1) FROM t NATURAL JOIN t AS a;";
+
+EXECUTE IMMEDIATE "SELECT LEAD(c) OVER (ORDER BY c) FROM (SELECT 1 AS c) AS a NATURAL JOIN (SELECT 1 AS c) AS b;";
+
+DROP FUNCTION f;
+DROP TABLE t;
+
+--echo #
+--echo # End of 10.6 tests
+--echo #
diff --git a/mysql-test/main/win_big-mdev-11697.result b/mysql-test/main/win_big-mdev-11697.result
index ec9d2243c88..e8034e67aaf 100644
--- a/mysql-test/main/win_big-mdev-11697.result
+++ b/mysql-test/main/win_big-mdev-11697.result
@@ -1,3 +1,4 @@
+set max_recursive_iterations=200000;
create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10));
insert into test_table(id, random_data, static_int, static_varchar)
select id, random_data, 42, 'Hello'
@@ -71,3 +72,4 @@ where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end
SORT_MERGE_PASSES WITH PASSES
drop table test_table;
+set max_recursive_iterations=default;
diff --git a/mysql-test/main/win_big-mdev-11697.test b/mysql-test/main/win_big-mdev-11697.test
index 98669a18cee..b3ac2b41e89 100644
--- a/mysql-test/main/win_big-mdev-11697.test
+++ b/mysql-test/main/win_big-mdev-11697.test
@@ -1,5 +1,6 @@
--source include/no_valgrind_without_big.inc
+set max_recursive_iterations=200000;
create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10));
insert into test_table(id, random_data, static_int, static_varchar)
@@ -53,3 +54,4 @@ where variable_name like 'Sort_merge_passes';
--enable_view_protocol
drop table test_table;
+set max_recursive_iterations=default;
diff --git a/mysql-test/main/xa.result b/mysql-test/main/xa.result
index 75f32a1a0aa..54763729e57 100644
--- a/mysql-test/main/xa.result
+++ b/mysql-test/main/xa.result
@@ -305,7 +305,8 @@ INSERT INTO t2 VALUES (1);
COMMIT;
BEGIN;
INSERT INTO t2 VALUES (2);
-UPDATE t2 SET a=a+1;
+UPDATE t2 SET a=a+2;
+UPDATE t2 SET a=a-1;
connect con2,localhost,root;
XA START 'xid1';
INSERT INTO t1 VALUES (1);
diff --git a/mysql-test/main/xa.test b/mysql-test/main/xa.test
index 408c7e01c9d..7cb6d46d112 100644
--- a/mysql-test/main/xa.test
+++ b/mysql-test/main/xa.test
@@ -401,7 +401,8 @@ CREATE TABLE t2 (a INT) ENGINE=InnoDB;
INSERT INTO t2 VALUES (1); COMMIT;
BEGIN;
INSERT INTO t2 VALUES (2);
-UPDATE t2 SET a=a+1;
+UPDATE t2 SET a=a+2;
+UPDATE t2 SET a=a-1;
--connect (con2,localhost,root)
XA START 'xid1';
diff --git a/mysql-test/main/xa_prepared_binlog_off.result b/mysql-test/main/xa_prepared_binlog_off.result
index ca19f6cdfaf..ebcb24d3af3 100644
--- a/mysql-test/main/xa_prepared_binlog_off.result
+++ b/mysql-test/main/xa_prepared_binlog_off.result
@@ -3,6 +3,7 @@ connection default;
CREATE VIEW v_processlist as SELECT * FROM performance_schema.threads where type = 'FOREGROUND';
call mtr.add_suppression("Found 10 prepared XA transactions");
CREATE TABLE t (a INT) ENGINE=innodb;
+INSERT INTO t VALUES(100);
connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
SET @@sql_log_bin = OFF;
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
@@ -48,18 +49,21 @@ connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
XA START 'trx1ro';
SELECT * from t ORDER BY a;
a
+100
XA END 'trx1ro';
XA PREPARE 'trx1ro';
connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
XA START 'trx2ro';
SELECT * from t ORDER BY a;
a
+100
XA END 'trx2ro';
XA PREPARE 'trx2ro';
connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
XA START 'trx3ro';
SELECT * from t ORDER BY a;
a
+100
XA END 'trx3ro';
XA PREPARE 'trx3ro';
connection default;
@@ -402,6 +406,7 @@ ERROR XAE08: XAER_DUPID: The XID already exists
XA ROLLBACK 'trx_19';
SELECT * FROM t;
a
+100
5
6
7
@@ -533,6 +538,7 @@ a
12
13
14
+100
XA END 'trx1ro';
XA PREPARE 'trx1ro';
connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
@@ -559,6 +565,7 @@ a
12
13
14
+100
XA END 'trx2ro';
XA PREPARE 'trx2ro';
connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,;
@@ -585,6 +592,7 @@ a
12
13
14
+100
XA END 'trx3ro';
XA PREPARE 'trx3ro';
connection default;
@@ -927,6 +935,7 @@ ERROR XAE08: XAER_DUPID: The XID already exists
XA ROLLBACK 'trx_19';
SELECT * FROM t;
a
+100
5
6
7
@@ -1036,7 +1045,7 @@ XA END 'one_phase_trx_4';
XA COMMIT 'one_phase_trx_4' ONE PHASE;
SELECT SUM(a) FROM t;
SUM(a)
-290
+390
DROP TABLE t;
DROP VIEW v_processlist;
All transactions must be completed, to empty-list the following: