Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.137.161.250
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
include /
[ HOME SHELL ]
Name
Size
Permission
Action
Load_data.inc
173
B
-rw-r--r--
add_anonymous_users.inc
194
B
-rw-r--r--
add_debug_point.inc
3.11
KB
-rw-r--r--
allowed_ciphers.inc
409
B
-rw-r--r--
analyze-sync_with_master.test
283
B
-rw-r--r--
analyze-timeout.test
25
B
-rw-r--r--
assert.inc
2.38
KB
-rw-r--r--
assert_and_disable_read_only.i...
1.05
KB
-rw-r--r--
assert_binlog_events.inc
10.22
KB
-rw-r--r--
assert_command_output.inc
2.45
KB
-rw-r--r--
assert_grep.inc
4.17
KB
-rw-r--r--
assert_gtid_mode_on.inc
250
B
-rw-r--r--
assert_logical_timestamps.inc
2.63
KB
-rw-r--r--
assert_no_warnings.inc
977
B
-rw-r--r--
assert_rbr_only_flags.inc
2.46
KB
-rw-r--r--
assert_semisync_master_status_...
273
B
-rw-r--r--
assert_semisync_master_status_...
271
B
-rw-r--r--
assert_semisync_yesno_tx_incre...
1.23
KB
-rw-r--r--
assert_status.inc
1.03
KB
-rw-r--r--
assert_variable.inc
892
B
-rw-r--r--
backup_tables_priv_and_users.i...
1.06
KB
-rw-r--r--
begin_include_file.inc
3.21
KB
-rw-r--r--
begin_replace_gtid_combination...
2.07
KB
-rw-r--r--
big_test.inc
107
B
-rw-r--r--
binlog_inject_error.inc
641
B
-rw-r--r--
bug13581713.inc
6.62
KB
-rw-r--r--
bug38347.inc
404
B
-rw-r--r--
change_file_perms.inc
521
B
-rw-r--r--
check-testcase.test
2.98
KB
-rw-r--r--
check-warnings.test
1.74
KB
-rw-r--r--
check_charset.inc
3.53
KB
-rw-r--r--
check_concurrent_insert.inc
2.66
KB
-rw-r--r--
check_events_off.inc
1.82
KB
-rw-r--r--
check_ftwrl_compatible.inc
3.64
KB
-rw-r--r--
check_ftwrl_incompatible.inc
3.8
KB
-rw-r--r--
check_ipv4_mapped.inc
683
B
-rw-r--r--
check_ipv6.inc
597
B
-rw-r--r--
check_key_reads.inc
250
B
-rw-r--r--
check_key_req.inc
628
B
-rw-r--r--
check_keys_after_migration.inc
2.17
KB
-rw-r--r--
check_no_concurrent_insert.inc
2.07
KB
-rw-r--r--
check_no_row_lock.inc
1.76
KB
-rw-r--r--
check_openssl_version.inc
1.32
KB
-rw-r--r--
check_plugin_dir.inc
1.39
KB
-rw-r--r--
check_qep.inc
1.35
KB
-rw-r--r--
check_shared_row_lock.inc
1.39
KB
-rw-r--r--
check_slave_is_running.inc
750
B
-rw-r--r--
check_slave_no_error.inc
754
B
-rw-r--r--
check_slave_param.inc
1.33
KB
-rw-r--r--
check_var_limit.inc
394
B
-rw-r--r--
cleanup_fake_relay_log.inc
669
B
-rw-r--r--
cleanup_folder.inc
155
B
-rw-r--r--
commandline_option_test.inc
799
B
-rw-r--r--
commit.inc
22.71
KB
-rw-r--r--
commit_crash_restart.inc
268
B
-rw-r--r--
common-tests.inc
116.44
KB
-rw-r--r--
concurrent.inc
25.06
KB
-rw-r--r--
cond_filter_queries.inc
9.16
KB
-rw-r--r--
config_file_option_test.inc
783
B
-rw-r--r--
connect2.inc
977
B
-rw-r--r--
count_sessions.inc
389
B
-rw-r--r--
create_575_part_table.inc
1.03
KB
-rw-r--r--
create_table.inc
135
B
-rw-r--r--
ctype_8bit.inc
2.85
KB
-rw-r--r--
ctype_ascii_order.inc
1.04
KB
-rw-r--r--
ctype_common.inc
2.83
KB
-rw-r--r--
ctype_czech.inc
437
B
-rw-r--r--
ctype_datetime.inc
333
B
-rw-r--r--
ctype_filesort.inc
377
B
-rw-r--r--
ctype_filesort2.inc
1006
B
-rw-r--r--
ctype_german.inc
1.42
KB
-rw-r--r--
ctype_heap.inc
479
B
-rw-r--r--
ctype_inet.inc
450
B
-rw-r--r--
ctype_innodb_like.inc
665
B
-rw-r--r--
ctype_like.inc
1.36
KB
-rw-r--r--
ctype_like_escape.inc
592
B
-rw-r--r--
ctype_like_ignorable.inc
427
B
-rw-r--r--
ctype_like_range_f1f2.inc
835
B
-rw-r--r--
ctype_numconv.inc
44.86
KB
-rw-r--r--
ctype_pad_space.inc
133
B
-rw-r--r--
ctype_regex.inc
1.18
KB
-rw-r--r--
ctype_unicode520.inc
7.13
KB
-rw-r--r--
ctype_unicode_latin.inc
10.23
KB
-rw-r--r--
ctype_utf8_table.inc
1.35
KB
-rw-r--r--
ctype_utf8mb4.inc
60.36
KB
-rw-r--r--
daemon_example_bad_format.ini
215
B
-rw-r--r--
daemon_example_bad_soname.ini
227
B
-rw-r--r--
ddl_i18n.check_events.inc
864
B
-rw-r--r--
ddl_i18n.check_sp.inc
1.48
KB
-rw-r--r--
ddl_i18n.check_triggers.inc
1.71
KB
-rw-r--r--
ddl_i18n.check_views.inc
544
B
-rw-r--r--
deadlock.inc
3.59
KB
-rw-r--r--
default_client.cnf
367
B
-rw-r--r--
default_my.cnf
544
B
-rw-r--r--
default_mysqld.cnf
2.89
KB
-rw-r--r--
default_mysqld_autosize.cnf
1.87
KB
-rw-r--r--
default_ndbd.cnf
1.59
KB
-rw-r--r--
delete_all_rows.inc
3.15
KB
-rw-r--r--
delete_anonymous_users.inc
207
B
-rw-r--r--
diff_servers.inc
2.2
KB
-rw-r--r--
diff_tables.inc
7.55
KB
-rw-r--r--
disconnect_connections.inc
350
B
-rw-r--r--
end_include_file.inc
2.43
KB
-rw-r--r--
end_replace_gtid_combination.i...
779
B
-rw-r--r--
endspace.inc
338
B
-rw-r--r--
escape_sql.inc
1.52
KB
-rw-r--r--
eval.inc
5.73
KB
-rw-r--r--
execute_at_sync_point.inc
3.55
KB
-rw-r--r--
execute_from_sync_point.inc
1.96
KB
-rw-r--r--
execute_from_sync_point_with_e...
1.93
KB
-rw-r--r--
execute_to_sync_point.inc
2.34
KB
-rw-r--r--
execute_with_statistics.inc
772
B
-rw-r--r--
expect_crash.inc
214
B
-rw-r--r--
expect_qep.inc
1.19
KB
-rw-r--r--
explain.inc
11.17
KB
-rw-r--r--
explain_for_connection.inc
1.68
KB
-rw-r--r--
explain_for_connection_rqg.inc
200.97
KB
-rw-r--r--
explain_for_connection_small.i...
22.17
KB
-rw-r--r--
explain_json.inc
10.93
KB
-rw-r--r--
explain_non_select.inc
30.23
KB
-rw-r--r--
explain_other.inc
1.03
KB
-rw-r--r--
explain_run_count.inc
93
B
-rw-r--r--
explain_utils.inc
5.15
KB
-rw-r--r--
file_does_not_exist.inc
340
B
-rw-r--r--
filter_file.inc
5.12
KB
-rw-r--r--
finish_option_test.inc
235
B
-rw-r--r--
force_binlog_format_statement....
204
B
-rw-r--r--
force_myisam_default.inc
207
B
-rw-r--r--
force_restart.inc
335
B
-rw-r--r--
force_restart_if_skipped.inc
346
B
-rw-r--r--
freebsd.inc
107
B
-rw-r--r--
func_aes_block.inc
3.95
KB
-rw-r--r--
func_in.inc
18.06
KB
-rw-r--r--
function_defaults.inc
34.97
KB
-rw-r--r--
generate_keys_before_migration...
2.16
KB
-rw-r--r--
get_file_permissions.inc
274
B
-rw-r--r--
get_frm_info.inc
2.67
KB
-rw-r--r--
get_handler_status_counts.inc
143
B
-rw-r--r--
get_ndb_epochs.inc
2.12
KB
-rw-r--r--
get_relay_log_pos.inc
2.77
KB
-rw-r--r--
get_row_count.inc
1.96
KB
-rw-r--r--
gis_debug.inc
8.41
KB
-rw-r--r--
gis_generic.inc
13.64
KB
-rw-r--r--
gis_keys.inc
1.97
KB
-rw-r--r--
grant_cache.inc
7.6
KB
-rw-r--r--
greedy_search_drop_tables.inc
167
B
-rw-r--r--
greedy_search_load_tables.inc
996
B
-rw-r--r--
grep_pattern.inc
2.08
KB
-rw-r--r--
group_by_fd.inc
29.2
KB
-rw-r--r--
group_replication_timeouts.inc
255
B
-rw-r--r--
gtid_prepare_and_execute_stmt....
839
B
-rw-r--r--
gtid_step_assert.inc
4.62
KB
-rw-r--r--
gtid_step_assert_on_retrieved....
3.73
KB
-rw-r--r--
gtid_step_reset.inc
476
B
-rw-r--r--
gtid_step_reset_on_retrieved.i...
565
B
-rw-r--r--
gtid_utils.inc
15.49
KB
-rw-r--r--
gtid_utils_end.inc
993
B
-rw-r--r--
handler.inc
49.53
KB
-rw-r--r--
have_32bit.inc
428
B
-rw-r--r--
have_64bit.inc
357
B
-rw-r--r--
have_QC_Disabled.inc
137
B
-rw-r--r--
have_archive.inc
180
B
-rw-r--r--
have_archive_plugin.inc
413
B
-rw-r--r--
have_audit_log_plugin.inc
688
B
-rw-r--r--
have_big5.inc
107
B
-rw-r--r--
have_binlog_checksum_off.inc
236
B
-rw-r--r--
have_binlog_format_mixed.inc
155
B
-rw-r--r--
have_binlog_format_mixed_or_ro...
181
B
-rw-r--r--
have_binlog_format_mixed_or_st...
193
B
-rw-r--r--
have_binlog_format_row.inc
153
B
-rw-r--r--
have_binlog_format_row_or_stat...
192
B
-rw-r--r--
have_binlog_format_statement.i...
159
B
-rw-r--r--
have_binlog_order_commits.test
308
B
-rw-r--r--
have_blackhole.inc
173
B
-rw-r--r--
have_blackhole_plugin.inc
427
B
-rw-r--r--
have_case_insensitive_file_sys...
134
B
-rw-r--r--
have_case_sensitive_file_syste...
132
B
-rw-r--r--
have_compress.inc
109
B
-rw-r--r--
have_cp1250_ch.inc
112
B
-rw-r--r--
have_cp1251.inc
115
B
-rw-r--r--
have_cp866.inc
113
B
-rw-r--r--
have_cp932.inc
110
B
-rw-r--r--
have_crypt.inc
103
B
-rw-r--r--
have_daemon_example_plugin.inc
387
B
-rw-r--r--
have_debug.inc
113
B
-rw-r--r--
have_debug_sync.inc
196
B
-rw-r--r--
have_dynamic_loading.inc
221
B
-rw-r--r--
have_engine_condition_pushdown...
170
B
-rw-r--r--
have_eucjpms.inc
114
B
-rw-r--r--
have_euckr.inc
108
B
-rw-r--r--
have_example_plugin.inc
566
B
-rw-r--r--
have_exampledb.inc
178
B
-rw-r--r--
have_expect.inc
628
B
-rw-r--r--
have_federated_plugin.inc
151
B
-rw-r--r--
have_firstmatch.inc
155
B
-rw-r--r--
have_gb18030.inc
113
B
-rw-r--r--
have_gb2312.inc
111
B
-rw-r--r--
have_gbk.inc
105
B
-rw-r--r--
have_geometry.inc
110
B
-rw-r--r--
have_grep.inc
319
B
-rw-r--r--
have_group_replication_plugin....
1.39
KB
-rw-r--r--
have_gtid.inc
378
B
-rw-r--r--
have_index_condition_pushdown....
169
B
-rw-r--r--
have_innochecksum_debug.inc
385
B
-rw-r--r--
have_innodb.inc
163
B
-rw-r--r--
have_innodb_16k.inc
231
B
-rw-r--r--
have_innodb_32k.inc
194
B
-rw-r--r--
have_innodb_4k.inc
229
B
-rw-r--r--
have_innodb_64k.inc
194
B
-rw-r--r--
have_innodb_8k.inc
229
B
-rw-r--r--
have_innodb_max_16k.inc
212
B
-rw-r--r--
have_innodb_zip.inc
216
B
-rw-r--r--
have_ipv4_mapped.inc
289
B
-rw-r--r--
have_ipv6.inc
339
B
-rw-r--r--
have_koi8r.inc
113
B
-rw-r--r--
have_latin2_ch.inc
112
B
-rw-r--r--
have_local_infile.inc
111
B
-rw-r--r--
have_log_bin.inc
314
B
-rw-r--r--
have_loosescan.inc
154
B
-rw-r--r--
have_lowercase0.inc
116
B
-rw-r--r--
have_lowercase1.inc
116
B
-rw-r--r--
have_lowercase2.inc
116
B
-rw-r--r--
have_materialization.inc
160
B
-rw-r--r--
have_max_indexes_128.inc
126
B
-rw-r--r--
have_max_indexes_64.inc
126
B
-rw-r--r--
have_mecab.inc
630
B
-rw-r--r--
have_memcached_plugin.inc
69
B
-rw-r--r--
have_mrr.inc
148
B
-rw-r--r--
have_multi_ndb.inc
2.02
KB
-rw-r--r--
have_myisam.inc
285
B
-rw-r--r--
have_mysql_no_login_plugin.inc
674
B
-rw-r--r--
have_mysql_upgrade.inc
134
B
-rw-r--r--
have_mysqld_safe.inc
756
B
-rw-r--r--
have_mysqlx_plugin.inc
70
B
-rw-r--r--
have_ndb.inc
659
B
-rw-r--r--
have_ndb_debug.inc
551
B
-rw-r--r--
have_ndb_extra.inc
65
B
-rw-r--r--
have_ndbapi_examples.inc
148
B
-rw-r--r--
have_ngram.inc
157
B
-rw-r--r--
have_no_undo_tablespaces.inc
195
B
-rw-r--r--
have_nodebug.inc
115
B
-rw-r--r--
have_not_innodb_plugin.inc
185
B
-rw-r--r--
have_null_audit_plugin.inc
701
B
-rw-r--r--
have_numa.inc
244
B
-rw-r--r--
have_openssl.inc
139
B
-rw-r--r--
have_openssl_binary.inc
1.48
KB
-rw-r--r--
have_openssl_support.inc
197
B
-rw-r--r--
have_openssl_version_1.1.0.inc
1.39
KB
-rw-r--r--
have_optimizer_trace.inc
291
B
-rw-r--r--
have_outfile.inc
171
B
-rw-r--r--
have_partition.inc
193
B
-rw-r--r--
have_partition_open_file_limit...
605
B
-rw-r--r--
have_perfschema.inc
146
B
-rw-r--r--
have_plugin_auth.inc
188
B
-rw-r--r--
have_plugin_interface.inc
187
B
-rw-r--r--
have_plugin_server.inc
178
B
-rw-r--r--
have_profiling.inc
112
B
-rw-r--r--
have_punch_hole.inc
813
B
-rw-r--r--
have_query_cache.inc
115
B
-rw-r--r--
have_query_cache_disabled.inc
1.01
KB
-rw-r--r--
have_replication_observers_exa...
988
B
-rw-r--r--
have_semijoin.inc
153
B
-rw-r--r--
have_semisync_plugin.inc
594
B
-rw-r--r--
have_sha256_rsa_auth.inc
305
B
-rw-r--r--
have_shm.inc
169
B
-rw-r--r--
have_simple_parser.inc
662
B
-rw-r--r--
have_sjis.inc
108
B
-rw-r--r--
have_slave_parallel_type_datab...
253
B
-rw-r--r--
have_slave_parallel_type_logic...
263
B
-rw-r--r--
have_slave_repository_type_fil...
241
B
-rw-r--r--
have_slave_repository_type_tab...
240
B
-rw-r--r--
have_ssl.inc
136
B
-rw-r--r--
have_ssl_communication.inc
136
B
-rw-r--r--
have_ssl_crypto_functs.inc
408
B
-rw-r--r--
have_statement_timeout.inc
127
B
-rw-r--r--
have_symlink.inc
291
B
-rw-r--r--
have_tis620.inc
108
B
-rw-r--r--
have_ucs2.inc
107
B
-rw-r--r--
have_udf.inc
630
B
-rw-r--r--
have_ujis.inc
108
B
-rw-r--r--
have_undo_tablespaces.inc
211
B
-rw-r--r--
have_utf16.inc
109
B
-rw-r--r--
have_utf32.inc
109
B
-rw-r--r--
have_utf8.inc
111
B
-rw-r--r--
have_utf8mb4.inc
117
B
-rw-r--r--
have_util_nc.inc
930
B
-rw-r--r--
have_util_unzip.inc
706
B
-rw-r--r--
have_valgrind.inc
182
B
-rw-r--r--
have_validate_password_plugin....
703
B
-rw-r--r--
ib_logfile_size_check.inc
278
B
-rw-r--r--
icp_tests.inc
25.61
KB
-rw-r--r--
if_encrypted.inc
845
B
-rw-r--r--
implicit_commit_helper.inc
123
B
-rw-r--r--
index_merge1.inc
23.14
KB
-rw-r--r--
index_merge2.inc
13.6
KB
-rw-r--r--
index_merge_2sweeps.inc
1.58
KB
-rw-r--r--
index_merge_delete.inc
6.1
KB
-rw-r--r--
index_merge_insert-and-replace...
3.59
KB
-rw-r--r--
index_merge_intersect_dml.inc
5.41
KB
-rw-r--r--
index_merge_multi_col_setup.in...
1.25
KB
-rw-r--r--
index_merge_ror.inc
11.76
KB
-rw-r--r--
index_merge_ror_cpk.inc
17.85
KB
-rw-r--r--
index_merge_single_col_setup.i...
1.2
KB
-rw-r--r--
index_merge_update.inc
4.56
KB
-rw-r--r--
init_option_test.inc
238
B
-rw-r--r--
innodb-index.inc
1.2
KB
-rw-r--r--
innodb-util.inc
3.47
KB
-rw-r--r--
innodb_gis_row_format_basic.in...
20.29
KB
-rw-r--r--
innodb_gis_undo.inc
293.94
KB
-rw-r--r--
innodb_pk_extension.inc
10.18
KB
-rw-r--r--
innodb_rollback_on_timeout.inc
931
B
-rw-r--r--
innodb_trx_weight.inc
861
B
-rw-r--r--
install_replication_observers_...
633
B
-rw-r--r--
install_semisync.inc
255
B
-rw-r--r--
install_semisync_master.inc
1011
B
-rw-r--r--
install_semisync_slave.inc
626
B
-rw-r--r--
io_thd_fault_injection.inc
598
B
-rw-r--r--
ipv6.inc
626
B
-rw-r--r--
ipv6_clients.inc
435
B
-rw-r--r--
ipv6_func.inc
1.38
KB
-rw-r--r--
is_embedded.inc
126
B
-rw-r--r--
join_cache.inc
70
KB
-rw-r--r--
keyring_udf_keyring_plugin_loa...
8.21
KB
-rw-r--r--
keyring_udf_keyring_plugin_loa...
2.83
KB
-rw-r--r--
keyring_udf_keyring_plugin_loa...
8.49
KB
-rw-r--r--
keyring_udf_keyring_plugin_not...
711
B
-rw-r--r--
keyring_udf_keyring_udf_plugin...
504
B
-rw-r--r--
keyring_udf_missing_plugin.inc
1.41
KB
-rw-r--r--
kill_and_restart_mysqld.inc
428
B
-rw-r--r--
kill_at_sync_point.inc
1.3
KB
-rw-r--r--
kill_mysqld.inc
245
B
-rw-r--r--
kill_query.inc
1.73
KB
-rw-r--r--
kill_query_and_diff_master_sla...
1.05
KB
-rw-r--r--
kill_wait_for_executed_gtid_se...
1.22
KB
-rw-r--r--
libdaemon_example.ini
230
B
-rw-r--r--
linux.inc
99
B
-rw-r--r--
linux_sys_vars.inc
604
B
-rw-r--r--
list_files_with_size_and_hash....
764
B
-rw-r--r--
load_sysvars.inc
442
B
-rw-r--r--
loaddata_autocom.inc
911
B
-rw-r--r--
log_builtin_as_identified_by_p...
1.63
KB
-rw-r--r--
m_i_db_common.inc
468
B
-rw-r--r--
m_i_db_startsvr.inc
1.38
KB
-rw-r--r--
master-slave.inc
1.89
KB
-rw-r--r--
max_indexes.inc
93
B
-rw-r--r--
memcache_config.inc
2.17
KB
-rw-r--r--
min_null_cond.inc
1.56
KB
-rw-r--r--
mix1.inc
49.15
KB
-rw-r--r--
mix2.inc
76.8
KB
-rw-r--r--
mix2_ucs2.inc
11.56
KB
-rw-r--r--
mrr_innodb_tests.inc
1.55
KB
-rw-r--r--
mrr_tests.inc
16.96
KB
-rw-r--r--
mtr_check.sql
6.31
KB
-rw-r--r--
mtr_system_tables_data.sql
3.72
KB
-rw-r--r--
mtr_test_data_timezone.sql
10.57
KB
-rw-r--r--
mtr_warnings.sql
13.68
KB
-rw-r--r--
mysql_have_debug.inc
979
B
-rw-r--r--
mysql_upgrade_cleanup.inc
258
B
-rw-r--r--
mysql_upgrade_preparation.inc
777
B
-rw-r--r--
mysqlbinlog.inc
1.77
KB
-rw-r--r--
mysqlbinlog_have_debug.inc
989
B
-rw-r--r--
mysqlbinlog_raw_mode.inc
9.74
KB
-rw-r--r--
mysqld--help.inc
2.56
KB
-rw-r--r--
mysqldump.inc
2.02
KB
-rw-r--r--
mysqlpump_stmt.inc
11.64
KB
-rw-r--r--
mysqltest-x.inc
41
B
-rw-r--r--
ndb_backup.inc
405
B
-rw-r--r--
ndb_backup_id.inc
930
B
-rw-r--r--
ndb_backup_print.inc
459
B
-rw-r--r--
ndb_not_readonly.inc
925
B
-rw-r--r--
ndb_restore_master.inc
612
B
-rw-r--r--
ndb_restore_slave_eoption.inc
626
B
-rw-r--r--
ndb_setup_slave.inc
869
B
-rw-r--r--
ndb_wait_connected.inc
470
B
-rw-r--r--
no_checkpoint_end.inc
1.11
KB
-rw-r--r--
no_checkpoint_start.inc
202
B
-rw-r--r--
no_protocol.inc
304
B
-rw-r--r--
no_running_event_scheduler.inc
1.51
KB
-rw-r--r--
no_running_events.inc
1.72
KB
-rw-r--r--
no_valgrind_without_big.inc
355
B
-rw-r--r--
not_as_root.inc
45
B
-rw-r--r--
not_asan.inc
109
B
-rw-r--r--
not_binlog_format_row.inc
92
B
-rw-r--r--
not_blackhole.inc
173
B
-rw-r--r--
not_crashrep.inc
594
B
-rw-r--r--
not_embedded.inc
127
B
-rw-r--r--
not_group_replication_plugin.i...
444
B
-rw-r--r--
not_gtid_enabled.inc
349
B
-rw-r--r--
not_log_bin.inc
324
B
-rw-r--r--
not_lowercase1.inc
392
B
-rw-r--r--
not_master_info_table.inc
121
B
-rw-r--r--
not_min_protocol_tlsv12.inc
1.13
KB
-rw-r--r--
not_mts_slave_parallel_workers...
91
B
-rw-r--r--
not_ndb.inc
183
B
-rw-r--r--
not_ndb_default.inc
236
B
-rw-r--r--
not_ndb_is.inc
638
B
-rw-r--r--
not_openssl.inc
106
B
-rw-r--r--
not_parallel.inc
63
B
-rw-r--r--
not_relay_log_info_table.inc
127
B
-rw-r--r--
not_ssl.inc
98
B
-rw-r--r--
not_threadpool.inc
238
B
-rw-r--r--
not_valgrind.inc
118
B
-rw-r--r--
not_var_link.inc
498
B
-rw-r--r--
not_windows.inc
165
B
-rw-r--r--
not_windows_embedded.inc
305
B
-rw-r--r--
null_key.inc
9.7
KB
-rw-r--r--
one_thread_per_connection.inc
111
B
-rw-r--r--
only_binlog_transaction_depend...
160
B
-rw-r--r--
only_mts_slave_parallel_type_d...
136
B
-rw-r--r--
only_mts_slave_parallel_type_l...
146
B
-rw-r--r--
only_mts_slave_parallel_worker...
100
B
-rw-r--r--
only_with_option.inc
1.44
KB
-rw-r--r--
openssl_cert_generation_debug_...
481
B
-rw-r--r--
order_by.inc
76.76
KB
-rw-r--r--
parser-big.inc
1.74
KB
-rw-r--r--
parser_bug21114.inc
1.32
KB
-rw-r--r--
partition_date_range.inc
2.63
KB
-rw-r--r--
partition_default_functions.in...
3.11
KB
-rw-r--r--
plugin.defs
4.94
KB
-rw-r--r--
plugin_auth_check_non_default_...
131
B
-rw-r--r--
print_greedy_search_count.inc
571
B
-rw-r--r--
ps_conv.inc
47.96
KB
-rw-r--r--
ps_create.inc
1.48
KB
-rw-r--r--
ps_ddl_1.inc
468
B
-rw-r--r--
ps_modify.inc
10.3
KB
-rw-r--r--
ps_modify1.inc
3.16
KB
-rw-r--r--
ps_query.inc
24.3
KB
-rw-r--r--
ps_query_explain_select.inc
368
B
-rw-r--r--
ps_renew.inc
1.48
KB
-rw-r--r--
purge_first_log.inc
432
B
-rw-r--r--
query_cache.inc
5.74
KB
-rw-r--r--
query_cache_sql_prepare.inc
14.11
KB
-rw-r--r--
rand.inc
3.23
KB
-rw-r--r--
range.inc
85.45
KB
-rw-r--r--
read_file_to_var.inc
936
B
-rw-r--r--
read_many_rows.inc
4.29
KB
-rw-r--r--
read_only_bug28438114.inc
962
B
-rw-r--r--
relocate_binlogs.inc
3.36
KB
-rw-r--r--
remove_debug_point.inc
2.27
KB
-rw-r--r--
report-features.test
186
B
-rw-r--r--
restart_mysqld.inc
1.5
KB
-rw-r--r--
restart_slave_sql.inc
1002
B
-rw-r--r--
restore_default_binlog_format....
102
B
-rw-r--r--
restore_group_replication_auto...
1.82
KB
-rw-r--r--
restore_sql_mode_after_turn_of...
85
B
-rw-r--r--
restore_strict_mode.inc
84
B
-rw-r--r--
rowid_order.inc
3.08
KB
-rw-r--r--
rpl_change_topology.inc
8.41
KB
-rw-r--r--
rpl_change_topology_helper.inc
5.08
KB
-rw-r--r--
rpl_connect.inc
2.33
KB
-rw-r--r--
rpl_connection.inc
1.89
KB
-rw-r--r--
rpl_connection_master.inc
69
B
-rw-r--r--
rpl_connection_master1.inc
70
B
-rw-r--r--
rpl_connection_slave.inc
68
B
-rw-r--r--
rpl_connection_slave1.inc
69
B
-rw-r--r--
rpl_default_connections.inc
1.43
KB
-rw-r--r--
rpl_diff.inc
3.8
KB
-rw-r--r--
rpl_end.inc
5.27
KB
-rw-r--r--
rpl_events.inc
5.83
KB
-rw-r--r--
rpl_for_each_connection.inc
2.1
KB
-rw-r--r--
rpl_for_each_server.inc
1004
B
-rw-r--r--
rpl_generate_sync_chain.inc
5.73
KB
-rw-r--r--
rpl_get_end_of_relay_log.inc
2.17
KB
-rw-r--r--
rpl_group_replication_default_...
2.16
KB
-rw-r--r--
rpl_group_replication_plugin_i...
351
B
-rw-r--r--
rpl_hash_scan_assertion.inc
347
B
-rw-r--r--
rpl_init.inc
15.46
KB
-rw-r--r--
rpl_ip_mix.inc
772
B
-rw-r--r--
rpl_ip_mix2.inc
772
B
-rw-r--r--
rpl_ipv6.inc
661
B
-rw-r--r--
rpl_loaddata_charset.inc
781
B
-rw-r--r--
rpl_multi_engine.inc
729
B
-rw-r--r--
rpl_multi_engine3.inc
2.21
KB
-rw-r--r--
rpl_read_binlog_index_into_tab...
1.18
KB
-rw-r--r--
rpl_receive_event_count.inc
8.49
KB
-rw-r--r--
rpl_reconnect.inc
5.37
KB
-rw-r--r--
rpl_reset.inc
2.16
KB
-rw-r--r--
rpl_reset_master_helper.inc
54
B
-rw-r--r--
rpl_reset_slave_helper.inc
458
B
-rw-r--r--
rpl_restart_server.inc
1.44
KB
-rw-r--r--
rpl_row_img_general_loop.inc
1.18
KB
-rw-r--r--
rpl_row_img_parts_assertion.in...
3.02
KB
-rw-r--r--
rpl_row_img_parts_master_slave...
3.04
KB
-rw-r--r--
rpl_row_img_set.inc
1.51
KB
-rw-r--r--
rpl_set_gtid_mode.inc
5.48
KB
-rw-r--r--
rpl_skip_to_end_of_relay_log.i...
1.96
KB
-rw-r--r--
rpl_start_server.inc
4.68
KB
-rw-r--r--
rpl_start_slaves.inc
848
B
-rw-r--r--
rpl_stmt_seq.inc
7.63
KB
-rw-r--r--
rpl_stop_server.inc
2.26
KB
-rw-r--r--
rpl_stop_slaves.inc
787
B
-rw-r--r--
rpl_sync.inc
6.39
KB
-rw-r--r--
rpl_udf.inc
5.66
KB
-rw-r--r--
running_event_scheduler.inc
1.76
KB
-rw-r--r--
safe_set_to_maybe_ro_var.inc
707
B
-rw-r--r--
save_binlog_position.inc
731
B
-rw-r--r--
save_io_thread_pos.inc
1.66
KB
-rw-r--r--
save_master_pos.inc
1.83
KB
-rw-r--r--
save_semisync_yesno_tx.inc
466
B
-rw-r--r--
search_pattern.inc
1.07
KB
-rw-r--r--
search_pattern_in_file.inc
2.8
KB
-rw-r--r--
select.inc
191.02
KB
-rw-r--r--
server_option_test.pm
7.02
KB
-rw-r--r--
set_binlog_format_mixed.sql
1.2
KB
-rw-r--r--
set_binlog_format_row.sql
1.2
KB
-rw-r--r--
set_binlog_format_statement.sq...
1.21
KB
-rw-r--r--
set_gtid_next.inc
1.85
KB
-rw-r--r--
set_gtid_next_gtid_mode_agnost...
2.19
KB
-rw-r--r--
setup_fake_relay_log.inc
3.88
KB
-rw-r--r--
show_all_binlogs.inc
1.68
KB
-rw-r--r--
show_all_relay_logs.inc
2.5
KB
-rw-r--r--
show_binary_logs.inc
91
B
-rw-r--r--
show_binlog_events.inc
2.62
KB
-rw-r--r--
show_binlog_events_server_id.i...
1.36
KB
-rw-r--r--
show_delayed_slave_state.inc
1.47
KB
-rw-r--r--
show_events.inc
3.93
KB
-rw-r--r--
show_file_size.inc
480
B
-rw-r--r--
show_json_object.inc
1.53
KB
-rw-r--r--
show_master_logs.inc
106
B
-rw-r--r--
show_master_status.inc
155
B
-rw-r--r--
show_msg.inc
747
B
-rw-r--r--
show_msg80.inc
4.46
KB
-rw-r--r--
show_relaylog_events.inc
519
B
-rw-r--r--
show_rpl_debug_info.inc
5.75
KB
-rw-r--r--
show_slave_hosts.inc
194
B
-rw-r--r--
show_slave_status.inc
4.07
KB
-rw-r--r--
shutdown_mysqld.inc
750
B
-rw-r--r--
sp-vars.inc
3.34
KB
-rw-r--r--
start_group_replication.inc
3.29
KB
-rw-r--r--
start_group_replication_comman...
1.04
KB
-rw-r--r--
start_mysqld.inc
675
B
-rw-r--r--
start_slave.inc
1007
B
-rw-r--r--
start_slave_io.inc
1.03
KB
-rw-r--r--
start_slave_sql.inc
1.04
KB
-rw-r--r--
start_transaction_high_prio.in...
957
B
-rw-r--r--
stop_dump_threads.inc
1020
B
-rw-r--r--
stop_group_replication.inc
2.05
KB
-rw-r--r--
stop_mysqld.inc
1.1
KB
-rw-r--r--
stop_slave.inc
2.94
KB
-rw-r--r--
stop_slave_io.inc
1.17
KB
-rw-r--r--
stop_slave_sql.inc
1.08
KB
-rw-r--r--
store_group_replication_auto_i...
2.85
KB
-rw-r--r--
strict_autoinc.inc
626
B
-rw-r--r--
subquery.inc
202.57
KB
-rw-r--r--
subquery_mat.inc
46.47
KB
-rw-r--r--
subquery_sj.inc
196.86
KB
-rw-r--r--
subquery_sj_innodb.inc
4.15
KB
-rw-r--r--
sync_slave_io.inc
2.78
KB
-rw-r--r--
sync_slave_io_with_master.inc
1.57
KB
-rw-r--r--
sync_slave_sql.inc
4.88
KB
-rw-r--r--
sync_slave_sql_with_io.inc
969
B
-rw-r--r--
sync_slave_sql_with_master.inc
2.42
KB
-rw-r--r--
system_db_struct.inc
453
B
-rw-r--r--
test_fieldsize.inc
724
B
-rw-r--r--
test_outfile.inc
76
B
-rw-r--r--
testdb_only.inc
1.39
KB
-rw-r--r--
tpcb.inc
4.37
KB
-rw-r--r--
tpcb_disk_data.inc
4.76
KB
-rw-r--r--
trigger_17864349.inc
577
B
-rw-r--r--
truncate_file.inc
315
B
-rw-r--r--
turn_off_only_full_group_by.in...
200
B
-rw-r--r--
turn_off_strict_mode.inc
244
B
-rw-r--r--
uninstall_replication_observer...
377
B
-rw-r--r--
uninstall_semisync.inc
708
B
-rw-r--r--
uninstall_semisync_master.inc
508
B
-rw-r--r--
uninstall_semisync_slave.inc
395
B
-rw-r--r--
unsafe_binlog.inc
6.78
KB
-rw-r--r--
user_57_to_56.inc
406
B
-rw-r--r--
uses_vardir.inc
385
B
-rw-r--r--
varchar.inc
7.15
KB
-rw-r--r--
vardir_size_check.inc
547
B
-rw-r--r--
view_alias.inc
1.05
KB
-rw-r--r--
wait_condition.inc
1.54
KB
-rw-r--r--
wait_condition_or_abort.inc
780
B
-rw-r--r--
wait_condition_sp.inc
1.27
KB
-rw-r--r--
wait_for_binlog_event.inc
1.09
KB
-rw-r--r--
wait_for_file_closed.inc
503
B
-rw-r--r--
wait_for_mts_checkpoint.inc
399
B
-rw-r--r--
wait_for_ndb_committed_to_binl...
1.87
KB
-rw-r--r--
wait_for_query_to_fail.inc
455
B
-rw-r--r--
wait_for_query_to_succeed.inc
590
B
-rw-r--r--
wait_for_semisync_master_statu...
277
B
-rw-r--r--
wait_for_semisync_master_statu...
274
B
-rw-r--r--
wait_for_slave_io_error.inc
4.04
KB
-rw-r--r--
wait_for_slave_io_to_start.inc
1.34
KB
-rw-r--r--
wait_for_slave_io_to_stop.inc
1.04
KB
-rw-r--r--
wait_for_slave_param.inc
6.79
KB
-rw-r--r--
wait_for_slave_sql_error.inc
3.48
KB
-rw-r--r--
wait_for_slave_sql_error_and_s...
1.77
KB
-rw-r--r--
wait_for_slave_sql_to_start.in...
990
B
-rw-r--r--
wait_for_slave_sql_to_stop.inc
1.08
KB
-rw-r--r--
wait_for_slave_to_start.inc
779
B
-rw-r--r--
wait_for_slave_to_stop.inc
1.02
KB
-rw-r--r--
wait_for_slave_to_sync_with_ma...
578
B
-rw-r--r--
wait_for_status_var.inc
2.92
KB
-rw-r--r--
wait_for_wait_for_executed_gti...
614
B
-rw-r--r--
wait_innodb_all_purged.inc
1.34
KB
-rw-r--r--
wait_show_condition.inc
3.83
KB
-rw-r--r--
wait_time_until_connected_agai...
735
B
-rw-r--r--
wait_until_connected_again.inc
773
B
-rw-r--r--
wait_until_count_sessions.inc
4.12
KB
-rw-r--r--
wait_until_disconnected.inc
612
B
-rw-r--r--
wait_until_rows_count.inc
352
B
-rw-r--r--
weight_string.inc
1.28
KB
-rw-r--r--
weight_string_81309D30.inc
2.42
KB
-rw-r--r--
weight_string_8140.inc
2.07
KB
-rw-r--r--
weight_string_8EA1.inc
2.07
KB
-rw-r--r--
weight_string_8FA2C3.inc
2.2
KB
-rw-r--r--
weight_string_A1A1.inc
2.07
KB
-rw-r--r--
weight_string_A2A9.inc
2.13
KB
-rw-r--r--
weight_string_chde.inc
3.26
KB
-rw-r--r--
weight_string_euro.inc
1.81
KB
-rw-r--r--
weight_string_l1.inc
497
B
-rw-r--r--
weight_string_l12.inc
199
B
-rw-r--r--
weight_string_l14.inc
1.28
KB
-rw-r--r--
weight_string_l2.inc
312
B
-rw-r--r--
weight_string_l3.inc
497
B
-rw-r--r--
weight_string_l4.inc
497
B
-rw-r--r--
windows.inc
118
B
-rw-r--r--
windows_sys_vars.inc
600
B
-rw-r--r--
wl6219-engine.test
3.63
KB
-rw-r--r--
wl6301.inc
2.89
KB
-rw-r--r--
world.inc
162.21
KB
-rw-r--r--
world_schema.inc
731
B
-rw-r--r--
world_schema1.inc
549
B
-rw-r--r--
write_result_to_file.inc
3.15
KB
-rw-r--r--
write_var_to_file.inc
1.77
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : handler.inc
# include/handler.inc # # The variables # $engine_type -- storage engine to be tested # $other_engine_type -- storage engine <> $engine_type # $other_handler_engine_type -- storage engine <> $engine_type, if possible # 1. $other_handler_engine_type must support handler # 2. $other_handler_engine_type must point to an all # time available storage engine # 2006-08 MySQL 5.1 MyISAM and MEMORY only # have to be set before sourcing this script. -- source include/not_embedded.inc # # test of HANDLER ... # # Last update: # 2006-07-31 ML test refactored (MySQL 5.1) # code of t/handler.test and t/innodb_handler.test united # main testing code put into include/handler.inc # eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; --disable_warnings drop table if exists t1,t3,t4,t5; --enable_warnings create table t1 (a int, b char(10), key a(a), key b(a,b)); insert into t1 values (17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"), (14,"aaa"),(15,"bbb"),(16,"ccc"),(16,"xxx"), (20,"ggg"),(21,"hhh"),(22,"iii"); handler t1 open as t2; -- error 1064 handler t2 read a=(SELECT 1); handler t2 read a first; handler t2 read a next; handler t2 read a next; handler t2 read a prev; handler t2 read a last; handler t2 read a prev; handler t2 read a prev; handler t2 read a first; handler t2 read a prev; handler t2 read a last; handler t2 read a prev; handler t2 read a next; handler t2 read a next; handler t2 read a=(15); handler t2 read a=(16); --error 1070 handler t2 read a=(19,"fff"); handler t2 read b=(19,"fff"); handler t2 read b=(19,"yyy"); handler t2 read b=(19); --error 1109 handler t1 read a last; handler t2 read a=(11); handler t2 read a>=(11); handler t2 read a=(18); handler t2 read a>=(18); handler t2 read a>(18); handler t2 read a<=(18); handler t2 read a<(18); handler t2 read a first limit 5; handler t2 read a next limit 3; handler t2 read a prev limit 10; handler t2 read a>=(16) limit 4; handler t2 read a>=(16) limit 2,2; handler t2 read a last limit 3; handler t2 read a=(19); handler t2 read a=(19) where b="yyy"; handler t2 read first; handler t2 read next; handler t2 read next; --error 1064 handler t2 read last; handler t2 close; handler t1 open; handler t1 read a next; # this used to crash as a bug#5373 handler t1 read a next; handler t1 close; handler t1 open; handler t1 read a prev; # this used to crash as a bug#5373 handler t1 read a prev; handler t1 close; handler t1 open as t2; handler t2 read first; eval alter table t1 engine = $engine_type; --error 1109 handler t2 read first; # # DROP TABLE / ALTER TABLE # handler t1 open as t2; drop table t1; create table t1 (a int); insert into t1 values (17); --error 1109 handler t2 read first; handler t1 open as t2; eval alter table t1 engine=$other_engine_type; --error 1109 handler t2 read first; drop table t1; # # Test case for the bug #787 # create table t1 (a int); insert into t1 values (1),(2),(3),(4),(5),(6); delete from t1 limit 2; handler t1 open; handler t1 read first; handler t1 read first limit 1,1; handler t1 read first limit 2,2; delete from t1 limit 3; handler t1 read first; drop table t1; # # Test for #751 # create table t1(a int, index(a)); insert into t1 values (1), (2), (3); handler t1 open; --error 1054 handler t1 read a=(W); --error 1210 handler t1 read a=(a); drop table t1; # # BUG#2304 # create table t1 (a char(5)); insert into t1 values ("Ok"); handler t1 open as t; handler t read first; use mysql; handler t read first; handler t close; handler test.t1 open as t; handler t read first; handler t close; use test; drop table t1; # # BUG#3649 # create table t1 ( a int, b int, INDEX a (a) ); insert into t1 values (1,2), (2,1); handler t1 open; handler t1 read a=(1) where b=2; handler t1 read a=(1) where b=3; handler t1 read a=(1) where b=1; handler t1 close; drop table t1; # # Check if two database names beginning the same are seen as different. # # This database begins like the usual 'test' database. # --disable_warnings drop database if exists test_test; --enable_warnings create database test_test; use test_test; create table t1(table_id char(20) primary key); insert into t1 values ('test_test.t1'); insert into t1 values (''); handler t1 open; handler t1 read first limit 9; create table t2(table_id char(20) primary key); insert into t2 values ('test_test.t2'); insert into t2 values (''); handler t2 open; handler t2 read first limit 9; # # This is the usual 'test' database. # use test; --disable_warnings drop table if exists t1; --enable_warnings create table t1(table_id char(20) primary key); insert into t1 values ('test.t1'); insert into t1 values (''); --error 1066 handler t1 open; # # Check accesibility of all the tables. # use test; --error 1064 handler test.t1 read first limit 9; --error 1064 handler test_test.t1 read first limit 9; handler t1 read first limit 9; --error 1064 handler test_test.t2 read first limit 9; handler t2 read first limit 9; # # Cleanup. # --error 1064 handler test_test.t1 close; handler t1 close; drop table test_test.t1; --error 1064 handler test_test.t2 close; handler t2 close; drop table test_test.t2; drop database test_test; # use test; --error 1064 handler test.t1 close; --error 1109 handler t1 close; drop table test.t1; # # BUG#4335 # --disable_warnings drop database if exists test_test; drop table if exists t1; drop table if exists t2; drop table if exists t3; --enable_warnings create database test_test; use test_test; create table t1 (c1 char(20)); insert into t1 values ('test_test.t1'); create table t3 (c1 char(20)); insert into t3 values ('test_test.t3'); handler t1 open; handler t1 read first limit 9; handler t1 open h1; handler h1 read first limit 9; use test; create table t1 (c1 char(20)); create table t2 (c1 char(20)); create table t3 (c1 char(20)); insert into t1 values ('t1'); insert into t2 values ('t2'); insert into t3 values ('t3'); --error 1066 handler t1 open; --error 1066 handler t2 open t1; --error 1066 handler t3 open t1; handler t1 read first limit 9; --error 1064 handler test.t1 close; --error 1066 handler test.t1 open h1; --error 1066 handler test_test.t1 open h1; handler test_test.t3 open h3; handler test.t1 open h2; handler t1 read first limit 9; handler h1 read first limit 9; handler h2 read first limit 9; handler h3 read first limit 9; handler h2 read first limit 9; --error 1064 handler test.h1 close; handler t1 close; handler h1 close; handler h2 close; --error 1109 handler t1 read first limit 9; --error 1109 handler h1 read first limit 9; --error 1109 handler h2 read first limit 9; handler h3 read first limit 9; handler h3 read first limit 9; use test_test; handler h3 read first limit 9; --error 1064 handler test.h3 read first limit 9; handler h3 close; use test; drop table t3; drop table t2; drop table t1; drop database test_test; # # Test if fix for BUG#4286 correctly closes handler tables. # create table t1 (c1 char(20)); insert into t1 values ("t1"); handler t1 open as h1; handler h1 read first limit 9; create table t2 (c1 char(20)); insert into t2 values ("t2"); handler t2 open as h2; handler h2 read first limit 9; create table t3 (c1 char(20)); insert into t3 values ("t3"); handler t3 open as h3; handler h3 read first limit 9; create table t4 (c1 char(20)); insert into t4 values ("t4"); handler t4 open as h4; handler h4 read first limit 9; create table t5 (c1 char(20)); insert into t5 values ("t5"); handler t5 open as h5; handler h5 read first limit 9; # close first eval alter table t1 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; handler h3 read first limit 9; handler h4 read first limit 9; handler h5 read first limit 9; # close last eval alter table t5 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; handler h3 read first limit 9; handler h4 read first limit 9; --error 1109 handler h5 read first limit 9; # close middle eval alter table t3 engine=$other_handler_engine_type; --error 1109 handler h1 read first limit 9; handler h2 read first limit 9; --error 1109 handler h3 read first limit 9; handler h4 read first limit 9; --error 1109 handler h5 read first limit 9; handler h2 close; handler h4 close; # close all depending handler tables handler t1 open as h1_1; handler t1 open as h1_2; handler t1 open as h1_3; handler h1_1 read first limit 9; handler h1_2 read first limit 9; handler h1_3 read first limit 9; eval alter table t1 engine=$engine_type; --error 1109 handler h1_1 read first limit 9; --error 1109 handler h1_2 read first limit 9; --error 1109 handler h1_3 read first limit 9; drop table t1; drop table t2; drop table t3; drop table t4; drop table t5; # # Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash # create table t1 (c1 int); insert into t1 values (1); # client 1 handler t1 open; handler t1 read first; # client 2 connect (con2,localhost,root,,); connection con2; --exec echo send the below to another connection, do not wait for the result send optimize table t1; --sleep 1 # client 1 --exec echo proceed with the normal connection connection default; handler t1 read next; handler t1 close; # client 2 --exec echo read the result from the other connection connection con2; reap; # client 1 --exec echo proceed with the normal connection connection default; drop table t1; CREATE TABLE t1 ( no1 smallint(5) NOT NULL default '0', no2 int(10) NOT NULL default '0', PRIMARY KEY (no1,no2)); INSERT INTO t1 VALUES (1,274),(1,275),(2,6),(2,8),(4,1),(4,2); HANDLER t1 OPEN; HANDLER t1 READ `primary` = (1, 1000); HANDLER t1 READ `primary` PREV; DROP TABLE t1; # End of 4.1 tests # # Addendum to Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash # Show that DROP TABLE can no longer deadlock against # FLUSH TABLES WITH READ LOCK. This is a 5.0 issue. # create table t1 (c1 int); insert into t1 values (14397); flush tables with read lock; # The thread with the global read lock cannot drop the table itself: --error 1223 drop table t1; # # client 2 # We need a second connection to try the drop. # The drop waits for the global read lock to go away. # Without the addendum fix it locked LOCK_open before entering the wait loop. connection con2; --exec echo send the below to another connection, do not wait for the result send drop table t1; --sleep 1 # # client 1 # Now we need something that wants LOCK_open. A simple table access which # opens the table does the trick. --exec echo proceed with the normal connection connection default; # This would hang on LOCK_open without the 5.0 addendum fix. select * from t1; # Release the read lock. This should make the DROP go through. unlock tables; # # client 2 # Read the result of the drop command. connection con2; --exec echo read the result from the other connection reap; # # client 1 # Now back to normal operation. The table should not exist any more. --exec echo proceed with the normal connection connection default; --error 1146 select * from t1; # Just to be sure and not confuse the next test case writer. drop table if exists t1; # # Bug#25856 - HANDLER table OPEN in one connection lock DROP TABLE in another one # --disable_warnings drop table if exists t1; --enable_warnings eval create table t1 (a int) ENGINE=$other_engine_type; --echo --> client 2 connection con2; --error 1031 handler t1 open; --echo --> client 1 connection default; drop table t1; disconnect con2; # # Bug#30632 HANDLER read failure causes hang # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (a int); handler t1 open as t1_alias; --error 1176 handler t1_alias read a next; --error 1054 handler t1_alias READ a next where inexistent > 0; --error 1176 handler t1_alias read a next; --error 1054 handler t1_alias READ a next where inexistent > 0; handler t1_alias close; drop table t1; # # Bug#21587 FLUSH TABLES causes server crash when used with HANDLER statements # --disable_warnings drop table if exists t1,t2; --enable_warnings create table t1 (c1 int); create table t2 (c1 int); insert into t1 values (1); insert into t2 values (2); --echo connection: default handler t1 open; handler t1 read first; connect (flush,localhost,root,,); connection flush; --echo connection: flush --send flush tables; connect (waiter,localhost,root,,); connection waiter; --echo connection: waiter let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table flush"; --source include/wait_condition.inc connection default; --echo connection: default handler t2 open; handler t2 read first; handler t1 read next; handler t1 close; handler t2 close; connection flush; reap; connection default; drop table t1,t2; disconnect flush; # # Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements # --disable_warnings drop table if exists t1, t0; --enable_warnings create table t1 (c1 int); --echo connection: default handler t1 open; handler t1 read first; connect (flush,localhost,root,,); connection flush; --echo connection: flush --send rename table t1 to t0; connection waiter; --echo connection: waiter let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "rename table t1 to t0"; --source include/wait_condition.inc connection default; --echo connection: default --echo # --echo # RENAME placed two pending locks and waits. --echo # When HANDLER t0 OPEN does open_tables(), it calls --echo # mysql_ha_flush(), which in turn closes the open HANDLER for t1. --echo # RENAME TABLE gets unblocked. If it gets scheduled quickly --echo # and manages to complete before open_tables() --echo # of HANDLER t0 OPEN, open_tables() and therefore the whole --echo # HANDLER t0 OPEN succeeds. Otherwise open_tables() --echo # notices a pending or active exclusive metadata lock on t2 --echo # and the whole HANDLER t0 OPEN fails with ER_LOCK_DEADLOCK --echo # error. --echo # --error 0, ER_LOCK_DEADLOCK handler t0 open; --error 0, ER_UNKNOWN_TABLE handler t0 close; --echo connection: flush connection flush; reap; --error ER_UNKNOWN_TABLE handler t1 read next; --error ER_UNKNOWN_TABLE handler t1 close; connection default; drop table t0; connection flush; disconnect flush; --source include/wait_until_disconnected.inc connection waiter; disconnect waiter; --source include/wait_until_disconnected.inc connection default; # # Bug#30882 Dropping a temporary table inside a stored function may cause a server crash # # Test HANDLER statements in conjunction with temporary tables. While the temporary table # is open by a HANDLER, no other statement can access it. # --disable_warnings drop table if exists t1; --enable_warnings create temporary table t1 (a int, b char(1), key a(a), key b(a,b)); insert into t1 values (0,"a"),(1,"b"),(2,"c"),(3,"d"),(4,"e"), (5,"f"),(6,"g"),(7,"h"),(8,"i"),(9,"j"); select a,b from t1; handler t1 open as a1; handler a1 read a first; handler a1 read a next; handler a1 read a next; --error ER_CANT_REOPEN_TABLE select a,b from t1; handler a1 read a prev; handler a1 read a prev; handler a1 read a=(6) where b="g"; handler a1 close; select a,b from t1; handler t1 open as a2; handler a2 read a first; handler a2 read a last; handler a2 read a prev; handler a2 close; drop table t1; # # Bug#31397 Inconsistent drop table behavior of handler tables. # --disable_warnings drop table if exists t1,t2; --enable_warnings create table t1 (a int); handler t1 open as t1_alias; drop table t1; create table t1 (a int); handler t1 open as t1_alias; flush tables; drop table t1; create table t1 (a int); handler t1 open as t1_alias; handler t1_alias close; drop table t1; create table t1 (a int); handler t1 open as t1_alias; handler t1_alias read first; drop table t1; --error ER_UNKNOWN_TABLE handler t1_alias read next; # Test that temporary tables associated with handlers are properly dropped. create table t1 (a int); create temporary table t2 (a int, key(a)); handler t1 open as a1; handler t2 open as a2; handler a2 read a first; drop table t1, t2; --error ER_UNKNOWN_TABLE handler a2 read a next; --error ER_UNKNOWN_TABLE handler a1 close; # Alter table drop handlers create table t1 (a int, key(a)); create table t2 like t1; handler t1 open as a1; handler t2 open as a2; handler a1 read a first; handler a2 read a first; alter table t1 add b int; --error ER_UNKNOWN_TABLE handler a1 close; handler a2 close; drop table t1, t2; # Rename table drop handlers create table t1 (a int, key(a)); handler t1 open as a1; handler a1 read a first; rename table t1 to t2; --error ER_UNKNOWN_TABLE handler a1 read a first; drop table t2; # Optimize table drop handlers create table t1 (a int, key(a)); create table t2 like t1; handler t1 open as a1; handler t2 open as a2; handler a1 read a first; handler a2 read a first; optimize table t1; --error ER_UNKNOWN_TABLE handler a1 close; handler a2 close; drop table t1, t2; # Flush tables causes handlers reopen create table t1 (a int, b char(1), key a(a), key b(a,b)); insert into t1 values (0,"a"),(1,"b"),(2,"c"),(3,"d"),(4,"e"), (5,"f"),(6,"g"),(7,"h"),(8,"i"),(9,"j"); handler t1 open; handler t1 read a first; handler t1 read a next; flush tables; handler t1 read a next; handler t1 read a next; flush tables with read lock; handler t1 read a next; unlock tables; drop table t1; --error ER_UNKNOWN_TABLE handler t1 read a next; # # Bug#41110: crash with handler command when used concurrently with alter table # Bug#41112: crash in mysql_ha_close_table/get_lock_data with alter table # connect(con1,localhost,root,,); connect(con2,localhost,root,,); connection default; --disable_warnings drop table if exists t1; --enable_warnings --echo # First test case which is supposed trigger the execution --echo # path on which problem was discovered. create table t1 (a int); insert into t1 values (1); handler t1 open; connection con1; lock table t1 write; send alter table t1 engine=memory; connection con2; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 engine=memory"; --source include/wait_condition.inc connection default; --error ER_ILLEGAL_HA handler t1 read a next; handler t1 close; connection con1; --reap unlock tables; drop table t1; --echo # Now test case which was reported originally. connection default; create table t1 (a int, key(a)); insert into t1 values (1); handler t1 open; connection con1; send alter table t1 engine=memory; connection con2; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 engine=memory"; --source include/wait_condition.inc connection default; --error ER_ILLEGAL_HA handler t1 read a next; handler t1 close; connection con1; --reap # Since last in this connection was a send drop table t1; disconnect con1; --source include/wait_until_disconnected.inc connection con2; disconnect con2; --source include/wait_until_disconnected.inc connection default; # # Bug#44151 using handler commands on information_schema tables crashes server # USE information_schema; --error ER_WRONG_USAGE HANDLER COLUMNS OPEN; USE test; --echo # --echo # Add test coverage for HANDLER and LOCK TABLES, HANDLER and DDL. --echo # --disable_warnings drop table if exists t1, t2, t3; --enable_warnings create table t1 (a int, key a (a)); insert into t1 (a) values (1), (2), (3), (4), (5); create table t2 (a int, key a (a)) select * from t1; create temporary table t3 (a int, key a (a)) select * from t2; create temporary table t4 like t3; handler t1 open; handler t2 open; handler t3 open; --echo # --echo # No HANDLER sql is allowed under LOCK TABLES. --echo # But it does not implicitly closes all handlers. --echo # lock table t1 read; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t1 open; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t1 read next; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t2 close; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t3 open; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t4 open; --echo # After UNLOCK TABLES handlers should be around and --echo # we should be able to continue reading through them. unlock tables; handler t1 read next; handler t1 close; handler t2 read next; handler t2 close; handler t3 read next; handler t3 close; drop temporary tables t3, t4; --echo # --echo # Other operations that implicitly close handler: --echo # --echo # TRUNCATE --echo # handler t1 open; truncate table t1; --error ER_UNKNOWN_TABLE handler t1 read next; handler t1 open; --echo # --echo # CREATE TRIGGER --echo # create trigger t1_ai after insert on t1 for each row set @a=1; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # DROP TRIGGER --echo # handler t1 open; drop trigger t1_ai; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # ALTER TABLE --echo # handler t1 open; alter table t1 add column b int; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # ANALYZE TABLE --echo # handler t1 open; analyze table t1; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # OPTIMIZE TABLE --echo # handler t1 open; optimize table t1; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # REPAIR TABLE --echo # handler t1 open; repair table t1; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # DROP TABLE, naturally. --echo # handler t1 open; drop table t1; --error ER_UNKNOWN_TABLE handler t1 read next; create table t1 (a int, b int, key a (a)) select a from t2; --echo # --echo # RENAME TABLE, naturally --echo # handler t1 open; rename table t1 to t3; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # CREATE TABLE (even with IF NOT EXISTS clause, --echo # and the table exists). --echo # handler t2 open; create table if not exists t2 (a int); --error ER_UNKNOWN_TABLE handler t2 read next; rename table t3 to t1; drop table t2; --echo # --echo # FLUSH TABLE doesn't close the table but loses the position --echo # handler t1 open; handler t1 read a prev; flush table t1; handler t1 read a prev; handler t1 close; --echo # --echo # FLUSH TABLES WITH READ LOCK behaves like FLUSH TABLE. --echo # handler t1 open; handler t1 read a prev; flush tables with read lock; handler t1 read a prev; handler t1 close; unlock tables; --echo # --echo # Let us also check that these operations behave in similar --echo # way under LOCK TABLES. --echo # --echo # TRUNCATE under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; truncate table t1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; handler t1 open; --echo # --echo # CREATE TRIGGER under LOCK TABLES. --echo # lock tables t1 write; create trigger t1_ai after insert on t1 for each row set @a=1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # DROP TRIGGER under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; drop trigger t1_ai; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # ALTER TABLE under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; alter table t1 drop column b; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # ANALYZE TABLE under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; analyze table t1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # OPTIMIZE TABLE under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; optimize table t1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # REPAIR TABLE under LOCK TABLES. --echo # handler t1 open; lock tables t1 write; repair table t1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; --echo # --echo # DROP TABLE under LOCK TABLES, naturally. --echo # handler t1 open; lock tables t1 write; drop table t1; unlock tables; --error ER_UNKNOWN_TABLE handler t1 read next; create table t1 (a int, b int, key a (a)); insert into t1 (a) values (1), (2), (3), (4), (5); --echo # --echo # FLUSH TABLE doesn't close the table but loses the position --echo # handler t1 open; handler t1 read a prev; lock tables t1 write; flush table t1; unlock tables; handler t1 read a prev; handler t1 close; --echo # --echo # Explore the effect of HANDLER locks on concurrent DDL --echo # handler t1 open; --echo # Establishing auxiliary connections con1, con2, con3 connect(con1, localhost, root,,); connect(con2, localhost, root,,); connect(con3, localhost, root,,); --echo # --> connection con1; connection con1; --echo # Sending: --send drop table t1 --echo # We can't use connection 'default' as wait_condition will --echo # autoclose handlers. --echo # --> connection con2 connection con2; --echo # Waitng for 'drop table t1' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # Attempt to upgrade metadata locks to SR from S will lead to --echo # deadlock which will result in table being automatically closed. --error ER_NO_SUCH_TABLE handler t1 read a prev; handler t1 close; --echo # --> connection con1 connection con1; --echo # Reaping 'drop table t1'... --reap --echo # --> connection default connection default; --echo # --echo # Explore the effect of HANDLER locks in parallel with SELECT --echo # create table t1 (a int, key a (a)); insert into t1 (a) values (1), (2), (3), (4), (5); begin; select * from t1; handler t1 open; handler t1 read a prev; handler t1 read a prev; handler t1 close; --echo # --> connection con1; connection con1; --echo # Sending: --send drop table t1 --echo # --> connection con2 connection con2; --echo # Waiting for 'drop table t1' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # We can still use the table, it's part of the transaction select * from t1; --echo # Such are the circumstances that t1 is a part of transaction, --echo # thus we can reopen it in the handler handler t1 open; --echo # We can commit the transaction, it doesn't close the handler --echo # and doesn't let DROP to proceed immediately. commit; connection con2; --echo # Waiting for 'drop table t1' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # OTOH the first attempt to read from HANDLER will lead to metadata --echo # locks deadlock and thus to HANDLER being automatically closed. --error ER_NO_SUCH_TABLE handler t1 read a prev; handler t1 close; --echo # --> connection con1 connection con1; --echo # Reaping 'drop table t1'... --reap --echo # --> connection default connection default; --echo # --echo # Demonstrate that HANDLER locks and transaction locks --echo # reside in the same context. --echo # create table t1 (a int, key a (a)); insert into t1 (a) values (1), (2), (3), (4), (5); create table t0 (a int, key a (a)); insert into t0 (a) values (1), (2), (3), (4), (5); begin; select * from t1; --echo # --> connection con2 connection con2; --echo # Sending: send rename table t0 to t3, t1 to t0, t3 to t1; --echo # --> connection con1 connection con1; --echo # Waiting for 'rename table ...' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='rename table t0 to t3, t1 to t0, t3 to t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # We back-off on hitting deadlock condition. --error ER_LOCK_DEADLOCK handler t0 open; select * from t0; handler t1 open; commit; handler t1 close; --echo # --> connection con2 connection con2; --echo # Reaping 'rename table ...'... --reap --echo # --> connection default connection default; handler t1 open; handler t1 read a prev; handler t1 close; drop table t0; --echo # --echo # Originally there was a deadlock error in this test. --echo # With implementation of deadlock detector --echo # we no longer deadlock, but block and wait on a lock. --echo # The HANDLER is auto-closed as soon as the connection --echo # sees a pending conflicting lock against it. --echo # create table t2 (a int, key a (a)); handler t1 open; --echo # --> connection con1 connection con1; lock tables t2 read; --echo # --> connection con2 connection con2; --echo # Sending 'drop table t2'... --send drop table t2 --echo # --> connection con1 connection con1; --echo # Waiting for 'drop table t2' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t2'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # Sending 'select * from t2' send select * from t2; --echo # --> connection con1 connection con1; --echo # Waiting for 'select * from t2' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='select * from t2'; unlock tables; --echo # --> connection con2 connection con2; --echo # Reaping 'drop table t2'... --reap --echo # --> connection default connection default; --echo # Reaping 'select * from t2' --error ER_NO_SUCH_TABLE reap; handler t1 close; --echo # --echo # ROLLBACK TO SAVEPOINT releases transactional locks, --echo # but has no effect on open HANDLERs --echo # create table t2 like t1; create table t3 like t1; begin; --echo # Have something before the savepoint select * from t3; savepoint sv; handler t1 open; handler t1 read a first; handler t1 read a next; select * from t2; --echo # --> connection con1 connection con1; --echo # Sending: --send drop table t1 --echo # --> connection con2 connection con2; --echo # Sending: --send drop table t2 --echo # --> connection default connection default; --echo # Let DROP TABLE statements sync in. We must use --echo # a separate connection for that, because otherwise SELECT --echo # will auto-close the HANDLERs, becaues there are pending --echo # exclusive locks against them. --echo # --> connection con3 connection con3; --echo # Waiting for 'drop table t1' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # Waiting for 'drop table t2' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t2'; --source include/wait_condition.inc --echo # Demonstrate that t2 lock was released and t2 was dropped --echo # after ROLLBACK TO SAVEPOINT --echo # --> connection default connection default; rollback to savepoint sv; --echo # --> connection con2 connection con2; --echo # Reaping 'drop table t2'... --reap --echo # Demonstrate that ROLLBACK TO SAVEPOINT didn't release the handler --echo # lock. --echo # --> connection con3 connection con3; --echo # Check if 'drop table t1' still blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # Demonstrate that the drop will go through as soon as we close --echo # or will try to access HANDLER --error ER_NO_SUCH_TABLE handler t1 read a next; handler t1 close; --echo # connection con1 connection con1; --echo # Reaping 'drop table t1'... --reap --echo # --> connection default connection default; commit; drop table t3; --echo # --echo # A few special cases when using SAVEPOINT/ROLLBACK TO --echo # SAVEPOINT and HANDLER. --echo # --echo # Show that rollback to the savepoint taken in the beginning --echo # of the transaction doesn't release mdl lock on --echo # the HANDLER that was opened later. --echo # create table t1 (a int, key a(a)); insert into t1 (a) values (1), (2), (3), (4), (5); create table t2 like t1; begin; savepoint sv; handler t1 open; handler t1 read a first; handler t1 read a next; select * from t2; --echo # --> connection con1 connection con1; --echo # Sending: --send drop table t1 --echo # --> connection con2 connection con2; --echo # Sending: --send drop table t2 --echo # --> connection default connection default; --echo # Let DROP TABLE statements sync in. We must use --echo # a separate connection for that, because otherwise SELECT --echo # will auto-close the HANDLERs, becaues there are pending --echo # exclusive locks against them. --echo # --> connection con3 connection con3; --echo # Waiting for 'drop table t1' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # Waiting for 'drop table t2' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t2'; --source include/wait_condition.inc --echo # Demonstrate that t2 lock was released and t2 was dropped --echo # after ROLLBACK TO SAVEPOINT --echo # --> connection default connection default; rollback to savepoint sv; --echo # --> connection con2 connection con2; --echo # Reaping 'drop table t2'... --reap --echo # Demonstrate that ROLLBACK TO SAVEPOINT didn't release the handler --echo # lock. --echo # --> connection con3 connection con3; --echo # Check if 'drop table t1' is still blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t1'; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # Demonstrate that the drop will go through as soon as we access or --echo # close the HANDLER --error ER_NO_SUCH_TABLE handler t1 read a next; handler t1 close; --echo # connection con1 connection con1; --echo # Reaping 'drop table t1'... --reap --echo # --> connection default connection default; commit; --echo # --echo # Show that rollback to the savepoint taken in the beginning --echo # of the transaction works properly (no valgrind warnins, etc), --echo # even though it's done after the HANDLER mdl lock that was there --echo # at the beginning is released and added again. --echo # create table t1 (a int, key a(a)); insert into t1 (a) values (1), (2), (3), (4), (5); create table t2 like t1; create table t3 like t1; insert into t3 (a) select a from t1; begin; handler t1 open; savepoint sv; handler t1 read a first; select * from t2; handler t1 close; handler t3 open; handler t3 read a first; rollback to savepoint sv; --echo # --> connection con1 connection con1; drop table t1, t2; --echo # Sending: --send drop table t3 --echo # Let DROP TABLE statement sync in. --echo # --> connection con2 connection con2; --echo # Waiting for 'drop table t3' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t3'; --source include/wait_condition.inc --echo # The fact that DROP TABLE is blocked means that ROLLBACK TO SAVEPOINT --echo # didn't release the handler lock. --echo # --> connection default connection default; --echo # Drop will go through as soon as we access or close the HANDLER --error ER_NO_SUCH_TABLE handler t3 read a next; handler t3 close; --echo # connection con1 connection con1; --echo # Reaping 'drop table t3'... --reap --echo # --> connection default connection default; commit; --echo # --echo # If we have to wait on an exclusive locks while having --echo # an open HANDLER, ER_LOCK_DEADLOCK is reported. --echo # create table t1 (a int, key a(a)); create table t2 like t1; handler t1 open; --echo # --> connection con1 connection con1; lock table t1 write, t2 write; --echo # --> connection default connection default; send drop table t2; --echo # --> connection con2 connection con2; --echo # Waiting for 'drop table t2' to get blocked... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for table metadata lock' and info='drop table t2'; --source include/wait_condition.inc --echo # --> connection con1 connection con1; --error ER_LOCK_DEADLOCK drop table t1; unlock tables; --echo # --> connection default connection default; reap; --echo # Demonstrate that there is no deadlock with FLUSH TABLE, --echo # even though it is waiting for the other table to go away create table t2 like t1; --echo # Sending: --send flush table t2 --echo # --> connection con2 connection con2; drop table t1; --echo # --> connection con1 connection con1; unlock tables; --echo # --> connection default connection default; --echo # Reaping 'flush table t2'... --reap drop table t2; --echo # --echo # Bug #46224 HANDLER statements within a transaction might --echo # lead to deadlocks --echo # create table t1 (a int, key a(a)); insert into t1 values (1), (2); --echo # --> connection default connection default; begin; select * from t1; handler t1 open; --echo # --> connection con1 connection con1; --echo # Sending: --send lock tables t1 write --echo # --> connection con2 connection con2; --echo # Check that 'lock tables t1 write' waits until transaction which --echo # has read from the table commits. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "lock tables t1 write"; --source include/wait_condition.inc --echo # --> connection default connection default; --echo # The below 'handler t1 read ...' should not be blocked as --echo # 'lock tables t1 write' has not succeeded yet. handler t1 read a next; --echo # Unblock 'lock tables t1 write'. commit; --echo # --> connection con1 connection con1; --echo # Reap 'lock tables t1 write'. --reap --echo # --> connection default connection default; --echo # Sending: --send handler t1 read a next --echo # --> connection con1 connection con1; --echo # Waiting for 'handler t1 read a next' to get blocked... let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "handler t1 read a next"; --source include/wait_condition.inc --echo # The below 'drop table t1' should be able to proceed without --echo # waiting as it will force HANDLER to be closed. drop table t1; unlock tables; --echo # --> connection default connection default; --echo # Reaping 'handler t1 read a next'... --error ER_NO_SUCH_TABLE --reap handler t1 close; --echo # --> connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc --echo # --> connection con2 connection con2; disconnect con2; --source include/wait_until_disconnected.inc --echo # --> connection con3 connection con3; disconnect con3; --source include/wait_until_disconnected.inc connection default; --echo # --echo # A temporary table test. --echo # Check that we don't loose positions of HANDLER opened --echo # against a temporary table. --echo # create table t1 (a int, b int, key a (a)); insert into t1 (a) values (1), (2), (3), (4), (5); create temporary table t2 (a int, b int, key a (a)); insert into t2 (a) select a from t1; handler t1 open; handler t1 read a next; handler t2 open; handler t2 read a next; flush table t1; handler t2 read a next; --echo # Sic: the position is lost handler t1 read a next; select * from t1; --echo # Sic: the position is not lost handler t2 read a next; --error ER_CANT_REOPEN_TABLE select * from t2; handler t2 read a next; drop table t1; drop temporary table t2; --echo # --echo # A test for lock_table_names()/unlock_table_names() function. --echo # It should work properly in presence of open HANDLER. --echo # create table t1 (a int, b int, key a (a)); create table t2 like t1; create table t3 like t1; create table t4 like t1; handler t1 open; handler t2 open; rename table t4 to t5, t3 to t4, t5 to t3; handler t1 read first; handler t2 read first; drop table t1, t2, t3, t4; --echo # --echo # A test for FLUSH TABLES WITH READ LOCK and HANDLER statements. --echo # set autocommit=0; create table t1 (a int, b int, key a (a)); insert into t1 (a, b) values (1, 1), (2, 1), (3, 2), (4, 2), (5, 5); create table t2 like t1; insert into t2 (a, b) select a, b from t1; create table t3 like t1; insert into t3 (a, b) select a, b from t1; commit; flush tables with read lock; handler t1 open; lock table t1 read; --error ER_LOCK_OR_ACTIVE_TRANSACTION handler t1 read next; --echo # This implicitly leaves LOCK TABLES but doesn't drop the GLR --error ER_NO_SUCH_TABLE lock table not_exists_write read; --echo # We still have the read lock. --error ER_CANT_UPDATE_WITH_READLOCK drop table t1; handler t1 open; select a from t2; handler t1 read next; flush tables with read lock; handler t2 open; flush tables with read lock; handler t1 read next; select a from t3; handler t2 read next; handler t1 close; rollback; handler t2 close; --error ER_CANT_UPDATE_WITH_READLOCK drop table t1; commit; flush tables; --error ER_CANT_UPDATE_WITH_READLOCK drop table t1; unlock tables; drop table t1; set autocommit=default; drop table t2, t3; --echo # --echo # HANDLER statement and operation-type aware metadata locks. --echo # Check that when we clone a ticket for HANDLER we downrade --echo # the lock. --echo # --echo # Establish an auxiliary connection con1. connect (con1,localhost,root,,); --echo # -> connection default connection default; create table t1 (a int, b int, key a (a)); insert into t1 (a, b) values (1, 1), (2, 1), (3, 2), (4, 2), (5, 5); begin; insert into t1 (a, b) values (6, 6); handler t1 open; handler t1 read a last; insert into t1 (a, b) values (7, 7); handler t1 read a last; commit; --echo # -> connection con1 connection con1; --echo # Demonstrate that the HANDLER doesn't hold MDL_SHARED_WRITE. lock table t1 write; unlock tables; --echo # -> connection default connection default; handler t1 read a prev; handler t1 close; --echo # Cleanup. drop table t1; --echo # -> connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc --echo # -> connection default connection default; --echo # --echo # A test for Bug#50555 "handler commands crash server in --echo # my_hash_first()". --echo # --error ER_UNKNOWN_TABLE handler no_such_table read no_such_index first; --error ER_UNKNOWN_TABLE handler no_such_table close; --echo # --echo # Bug#50907 Assertion `hash_tables->table->next == __null' on --echo # HANDLER OPEN --echo # --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings CREATE TEMPORARY TABLE t1 (i INT); CREATE TEMPORARY TABLE t2 (i INT); # This used to trigger the assert HANDLER t2 OPEN; # This also used to trigger the assert HANDLER t2 READ FIRST; HANDLER t2 CLOSE; DROP TABLE t1, t2; --echo # --echo # Bug#50912 Assertion `ticket->m_type >= mdl_request->type' --echo # failed on HANDLER + I_S --echo # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (id INT); HANDLER t1 OPEN; # This used to trigger the assert. SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema= 'test' AND table_name= 't1'; HANDLER t1 CLOSE; DROP TABLE t1; --echo # --echo # Test for bug #50908 "Assertion `handler_tables_hash.records == 0' --echo # failed in enter_locked_tables_mode". --echo # --disable_warnings drop tables if exists t1, t2; drop function if exists f1; --enable_warnings create table t1 (i int); insert into t1 values (1), (2); create table t2 (j int); insert into t2 values (1); create function f1() returns int return (select count(*) from t2); --echo # Check that open HANDLER survives statement executed in --echo # prelocked mode. handler t1 open; handler t1 read next; --echo # The below statement were aborted due to an assertion failure. select f1() from t2; handler t1 read next; handler t1 close; --echo # Check that the same happens under GLOBAL READ LOCK. flush tables with read lock; handler t1 open; handler t1 read next; select f1() from t2; handler t1 read next; unlock tables; handler t1 close; --echo # Now, check that the same happens if LOCK TABLES is executed. handler t1 open; handler t1 read next; lock table t2 read; select * from t2; unlock tables; handler t1 read next; handler t1 close; --echo # Finally, check scenario with GRL and LOCK TABLES. flush tables with read lock; handler t1 open; handler t1 read next; lock table t2 read; select * from t2; --echo # This unlocks both tables and GRL. unlock tables; handler t1 read next; handler t1 close; --echo # Clean-up. drop function f1; drop tables t1, t2; --echo # --echo # Test for bug #51136 "Crash in pthread_rwlock_rdlock on TEMPORARY + --echo # HANDLER + LOCK + SP". --echo # Also see additional coverage for this bug in flush.test. --echo # --disable_warnings drop tables if exists t1, t2; --enable_warnings create table t1 (i int); create temporary table t2 (j int); handler t1 open; lock table t2 read; --echo # This commit should not release any MDL locks. commit; unlock tables; --echo # The below statement crashed before the bug fix as it --echo # has attempted to release metadata lock which was --echo # already released by commit. handler t1 close; drop tables t1, t2; --echo # --echo # Bug#51355 handler stmt cause assertion in --echo # bool MDL_context::try_acquire_lock(MDL_request*) --echo # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings connect(con51355, localhost, root); --echo # Connection default connection default; CREATE TABLE t1(id INT, KEY id(id)); HANDLER t1 OPEN; --echo # Connection con51355 connection con51355; --echo # Sending: --send DROP TABLE t1 --echo # Connection default connection default; --echo # This I_S query will cause the handler table to be closed and --echo # the metadata lock to be released. This will allow DROP TABLE --echo # to proceed. Waiting for the table to be removed. let $wait_condition= SELECT COUNT(*) = 0 FROM information_schema.tables WHERE table_name = "t1"; --source include/wait_condition.inc --echo # Connection con51355 connection con51355; --echo # Reaping: DROP TABLE t1 --reap --echo # Connection default connection default; --error ER_NO_SUCH_TABLE HANDLER t1 READ id NEXT; # This caused an assertion --error ER_NO_SUCH_TABLE HANDLER t1 READ id NEXT; HANDLER t1 CLOSE; --echo # Connection con51355 connection con51355; disconnect con51355; --source include/wait_until_disconnected.inc --echo # Connection default connection default; --echo # --echo # Bug#54401 assert in Diagnostics_area::set_eof_status , HANDLER --echo # --disable_warnings DROP TABLE IF EXISTS t1, t2; DROP FUNCTION IF EXISTS f1; --enable_warnings delimiter |; CREATE FUNCTION f1() RETURNS INTEGER BEGIN SELECT 1 FROM t2 INTO @a; RETURN 1; END| delimiter ;| # Get f1() parsed and cached --error ER_NO_SUCH_TABLE SELECT f1(); CREATE TABLE t1(a INT); INSERT INTO t1 VALUES (1); HANDLER t1 OPEN; # This used to cause the assert --error ER_NOT_SUPPORTED_YET HANDLER t1 READ FIRST WHERE f1() = 1; HANDLER t1 CLOSE; DROP FUNCTION f1; DROP TABLE t1; --echo # --echo # Bug#54920 Stored functions are allowed in HANDLER statements, --echo # but broken. --echo # --disable_warnings DROP TABLE IF EXISTS t1; DROP FUNCTION IF EXISTS f1; --enable_warnings CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1), (2); CREATE FUNCTION f1() RETURNS INT RETURN 1; HANDLER t1 OPEN; --error ER_NOT_SUPPORTED_YET HANDLER t1 READ FIRST WHERE f1() = 1; HANDLER t1 CLOSE; DROP FUNCTION f1; DROP TABLE t1; --echo # --echo # Bug#13008220 HANDLER SQL STATEMENT CAN MISS TO INITIALIZE --echo # FOR RANDOM READ --echo # --echo # A handler can only have one active 'cursor' at a time, --echo # so switching between index and/or random should restart the cursor. CREATE TABLE t1(a INT, b INT, KEY b(b), KEY ab(a, b)); INSERT INTO t1 VALUES (2, 20), (1, 10), (4, 40), (3, 30); HANDLER t1 OPEN; HANDLER t1 READ b FIRST; HANDLER t1 READ NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ b FIRST; HANDLER t1 READ b NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ FIRST; HANDLER t1 READ b FIRST; HANDLER t1 READ NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ NEXT; HANDLER t1 READ b NEXT; HANDLER t1 READ FIRST; HANDLER t1 READ b PREV; HANDLER t1 READ b LAST; HANDLER t1 READ NEXT; HANDLER t1 READ ab FIRST; HANDLER t1 READ b NEXT; HANDLER t1 READ ab LAST; HANDLER t1 READ b PREV; HANDLER t1 CLOSE; DROP TABLE t1; --echo # --echo # Bug#21650603 ASSERT `0' FAILED AT THD::SEND_STATEMENT_STATUS() ON --echo # HANDLER READ + INVALID DATE --echo # CREATE TABLE t ( col_date DATE , col_datetime DATETIME , col_time TIME , col_year YEAR , KEY col_date_key (col_date) , KEY col_datetime_key (col_datetime) , KEY col_year_key (col_year)); HANDLER t OPEN; --error ER_WRONG_ARGUMENTS HANDLER t READ col_date_key <= ('p'); --error ER_WRONG_ARGUMENTS HANDLER t READ col_datetime_key <= ('p'); --error ER_WRONG_ARGUMENTS HANDLER t READ col_year_key <= ('p'); DROP TABLE t;
Close