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.223.8
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 /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
1st.test
271
B
-rw-r--r--
acl_tables_errors_debug.test
7.98
KB
-rw-r--r--
alias.test
9.17
KB
-rw-r--r--
almost_full.test
936
B
-rw-r--r--
alter_table-big.test
8.11
KB
-rw-r--r--
alter_table.test
102.27
KB
-rw-r--r--
analyze.test
3.17
KB
-rw-r--r--
ansi.test
1.25
KB
-rw-r--r--
archive-big.test
41.09
KB
-rw-r--r--
archive.test
105.99
KB
-rw-r--r--
archive_bitfield.test
3.94
KB
-rw-r--r--
archive_debug.test
395
B
-rw-r--r--
archive_gis.test
103
B
-rw-r--r--
archive_no_symlink-master.opt
22
B
-rw-r--r--
archive_no_symlink.test
810
B
-rw-r--r--
archive_plugin-master.opt
33
B
-rw-r--r--
archive_plugin.test
1016
B
-rw-r--r--
archive_symlink.test
2.48
KB
-rw-r--r--
auth_rpl-master.opt
35
B
-rw-r--r--
auth_rpl-slave.opt
36
B
-rw-r--r--
auth_rpl.test
1.86
KB
-rw-r--r--
auto_increment.test
11.27
KB
-rw-r--r--
bench_count_distinct.test
641
B
-rw-r--r--
bigint.test
15.61
KB
-rw-r--r--
binary.test
4.79
KB
-rw-r--r--
binary_to_hex.test
2.24
KB
-rw-r--r--
blackhole.test
762
B
-rw-r--r--
blackhole_plugin-master.opt
35
B
-rw-r--r--
blackhole_plugin.test
1.03
KB
-rw-r--r--
bool.test
2.47
KB
-rw-r--r--
bootstrap.test
2.49
KB
-rw-r--r--
bug12368203-master.opt
88
B
-rw-r--r--
bug12368203.test
5.75
KB
-rw-r--r--
bug12427262.test
1.7
KB
-rw-r--r--
bug12969156-master.opt
32
B
-rw-r--r--
bug12969156.test
498
B
-rw-r--r--
bug17076131-master.opt
57
B
-rw-r--r--
bug17076131.test
1.06
KB
-rw-r--r--
bug33509-master.opt
33
B
-rw-r--r--
bug33509.test
2.52
KB
-rw-r--r--
bug39022.test
1.62
KB
-rw-r--r--
bug46080-master.opt
69
B
-rw-r--r--
bug46080.test
723
B
-rw-r--r--
bug46261-master.opt
40
B
-rw-r--r--
bug46261.test
488
B
-rw-r--r--
bug46760-master.opt
53
B
-rw-r--r--
bug46760.test
970
B
-rw-r--r--
bug47671-master.opt
66
B
-rw-r--r--
bug47671.test
448
B
-rw-r--r--
bug58669-master.opt
12
B
-rw-r--r--
bug58669.test
495
B
-rw-r--r--
bulk_replace.test
311
B
-rw-r--r--
cache_innodb-master.opt
21
B
-rw-r--r--
cache_innodb.test
899
B
-rw-r--r--
case.test
6.56
KB
-rw-r--r--
cast.test
9.78
KB
-rw-r--r--
change_user-master.opt
16
B
-rw-r--r--
change_user.test
3.78
KB
-rw-r--r--
charset.test
2.4
KB
-rw-r--r--
check.test
2.26
KB
-rw-r--r--
check_auto_permission.test
2.06
KB
-rw-r--r--
client_xml.test
1.47
KB
-rw-r--r--
comment_column.test
36.48
KB
-rw-r--r--
comment_column2.test
131.05
KB
-rw-r--r--
comment_index.test
22.22
KB
-rw-r--r--
comment_table.test
14.01
KB
-rw-r--r--
comments.test
1.37
KB
-rw-r--r--
commit.test
15.16
KB
-rw-r--r--
commit_1innodb.test
324
B
-rw-r--r--
compare.test
3.26
KB
-rw-r--r--
compress.test
1.05
KB
-rw-r--r--
concurrent_innodb_safelog-mast...
29
B
-rw-r--r--
concurrent_innodb_safelog.test
716
B
-rw-r--r--
concurrent_innodb_unsafelog-ma...
62
B
-rw-r--r--
concurrent_innodb_unsafelog.te...
718
B
-rw-r--r--
condition_filter.test
1.14
KB
-rw-r--r--
connect.test
14.5
KB
-rw-r--r--
connect_debug.test
2.08
KB
-rw-r--r--
consistent_snapshot.test
2.02
KB
-rw-r--r--
constraints.test
1.84
KB
-rw-r--r--
count_distinct.test
8.05
KB
-rw-r--r--
count_distinct2-master.opt
28
B
-rw-r--r--
count_distinct2.test
1.87
KB
-rw-r--r--
count_distinct3.test
1.55
KB
-rw-r--r--
create-big.test
17.21
KB
-rw-r--r--
create.test
53.55
KB
-rw-r--r--
create_not_windows.test
1.25
KB
-rw-r--r--
create_select_tmp.test
1.33
KB
-rw-r--r--
create_w_max_indexes_64.test
18.57
KB
-rw-r--r--
csv-master.opt
21
B
-rw-r--r--
csv.test
106.92
KB
-rw-r--r--
csv_alter_table.test
1.78
KB
-rw-r--r--
csv_not_null.test
3.28
KB
-rw-r--r--
ctype_ascii.test
1.21
KB
-rw-r--r--
ctype_big5.test
5.36
KB
-rw-r--r--
ctype_binary.test
543
B
-rw-r--r--
ctype_collate.test
11.45
KB
-rw-r--r--
ctype_cp1250_ch.test
2.96
KB
-rw-r--r--
ctype_cp1251.test
2.82
KB
-rw-r--r--
ctype_cp932.test
1.01
KB
-rw-r--r--
ctype_cp932_binlog_row.test
237
B
-rw-r--r--
ctype_cp932_binlog_stm.test
4.65
KB
-rw-r--r--
ctype_create.test
3.43
KB
-rw-r--r--
ctype_errors.test
1.34
KB
-rw-r--r--
ctype_eucjpms.test
30.18
KB
-rw-r--r--
ctype_euckr.test
5.49
KB
-rw-r--r--
ctype_filename.test
368
B
-rw-r--r--
ctype_filesystem-master.opt
73
B
-rw-r--r--
ctype_filesystem.test
233
B
-rw-r--r--
ctype_gb18030.test
11.14
KB
-rw-r--r--
ctype_gb18030_binlog.test
1.09
KB
-rw-r--r--
ctype_gb18030_conversion.test
6.31
KB
-rw-r--r--
ctype_gb18030_encoding_cn.test
19.84
KB
-rw-r--r--
ctype_gb18030_encoding_utf8.te...
20.2
KB
-rw-r--r--
ctype_gb18030_ligatures.test
20.69
KB
-rw-r--r--
ctype_gb2312.test
4.77
KB
-rw-r--r--
ctype_gbk.test
6.22
KB
-rw-r--r--
ctype_gbk_binlog.test
1.01
KB
-rw-r--r--
ctype_hebrew.test
399
B
-rw-r--r--
ctype_latin1.test
7.3
KB
-rw-r--r--
ctype_latin1_de-master.opt
67
B
-rw-r--r--
ctype_latin1_de.test
5.99
KB
-rw-r--r--
ctype_latin2.test
3.2
KB
-rw-r--r--
ctype_latin2_ch.test
7.57
KB
-rw-r--r--
ctype_ldml-master.opt
129
B
-rw-r--r--
ctype_ldml.test
16.22
KB
-rw-r--r--
ctype_like_range.test
3.91
KB
-rw-r--r--
ctype_many.test
15.19
KB
-rw-r--r--
ctype_mb.test
699
B
-rw-r--r--
ctype_recoding.test
7.75
KB
-rw-r--r--
ctype_sjis.test
5.73
KB
-rw-r--r--
ctype_tis620.test
64.69
KB
-rw-r--r--
ctype_uca.test
27.37
KB
-rw-r--r--
ctype_ucs.test
23.83
KB
-rw-r--r--
ctype_ucs2_def-master.opt
70
B
-rw-r--r--
ctype_ucs2_def.test
1.57
KB
-rw-r--r--
ctype_ujis.test
40.68
KB
-rw-r--r--
ctype_ujis_ucs2.test
83.65
KB
-rw-r--r--
ctype_utf16.test
22.58
KB
-rw-r--r--
ctype_utf16_def-master.opt
36
B
-rw-r--r--
ctype_utf16_def.test
228
B
-rw-r--r--
ctype_utf16_uca.test
6.78
KB
-rw-r--r--
ctype_utf16le.test
22.27
KB
-rw-r--r--
ctype_utf32.test
25.42
KB
-rw-r--r--
ctype_utf32_uca.test
7.74
KB
-rw-r--r--
ctype_utf8-master.opt
32
B
-rw-r--r--
ctype_utf8.test
52.54
KB
-rw-r--r--
ctype_utf8mb4-master.opt
68
B
-rw-r--r--
ctype_utf8mb4.test
59.69
KB
-rw-r--r--
ctype_utf8mb4_heap.test
108
B
-rw-r--r--
ctype_utf8mb4_innodb-master.op...
32
B
-rw-r--r--
ctype_utf8mb4_innodb.test
237
B
-rw-r--r--
ctype_utf8mb4_myisam.test
93
B
-rw-r--r--
ctype_utf8mb4_uca.test
2.74
KB
-rw-r--r--
daemonize_opt-master.opt
54
B
-rw-r--r--
daemonize_opt.test
189
B
-rw-r--r--
datadir_permission.test
2.63
KB
-rw-r--r--
date_formats-master.opt
46
B
-rw-r--r--
date_formats.test
13.9
KB
-rw-r--r--
ddl_i18n_koi8r.test
23.39
KB
-rw-r--r--
ddl_i18n_utf8.test
23.67
KB
-rw-r--r--
deadlock_innodb.test
358
B
-rw-r--r--
debug_sync.test
14.22
KB
-rw-r--r--
debug_sync2-master.opt
29
B
-rw-r--r--
debug_sync2.test
1.41
KB
-rw-r--r--
default.test
5.8
KB
-rw-r--r--
delete.test
20.6
KB
-rw-r--r--
delete_all_rows.test
1.35
KB
-rw-r--r--
deprecate_eof-master.opt
21
B
-rw-r--r--
deprecate_eof.test
5.64
KB
-rw-r--r--
deprecated_features.test
731
B
-rw-r--r--
derived.test
81.78
KB
-rw-r--r--
dirty_close.test
1.55
KB
-rw-r--r--
disabled.def
1.31
KB
-rw-r--r--
disabled_replication-master.op...
29
B
-rw-r--r--
disabled_replication.test
2.79
KB
-rw-r--r--
disabled_storage_engines-maste...
52
B
-rw-r--r--
disabled_storage_engines.test
3.93
KB
-rw-r--r--
disconnect_on_expired_password...
1.39
KB
-rw-r--r--
disconnect_on_expired_password...
37
B
-rw-r--r--
disconnect_on_expired_password...
1.46
KB
-rw-r--r--
distinct.test
27.63
KB
-rw-r--r--
drop-no_root.test
2.59
KB
-rw-r--r--
drop.test
9.47
KB
-rw-r--r--
drop_debug.test
989
B
-rw-r--r--
ds_mrr-big.test
2.2
KB
-rw-r--r--
dynamic_tracing.test
3.92
KB
-rw-r--r--
empty_table.test
303
B
-rw-r--r--
enable_cleartext_plugin-master...
35
B
-rw-r--r--
enable_cleartext_plugin.test
2.48
KB
-rw-r--r--
endspace.test
4.36
KB
-rw-r--r--
eq_range_idx_stat.test
2.24
KB
-rw-r--r--
error_simulation.test
3.42
KB
-rw-r--r--
errors.test
4.97
KB
-rw-r--r--
events_1.test
18.96
KB
-rw-r--r--
events_2.test
15.97
KB
-rw-r--r--
events_and_binlog.test
445
B
-rw-r--r--
events_bugs-master.opt
18
B
-rw-r--r--
events_bugs.test
43.59
KB
-rw-r--r--
events_embedded.test
289
B
-rw-r--r--
events_grant.test
5.29
KB
-rw-r--r--
events_logs_tests-master.opt
41
B
-rw-r--r--
events_logs_tests.test
3.08
KB
-rw-r--r--
events_microsec.test
749
B
-rw-r--r--
events_restart-master.opt
18
B
-rw-r--r--
events_restart.test
4.51
KB
-rw-r--r--
events_scheduling.test
4.36
KB
-rw-r--r--
events_stress.test
4.57
KB
-rw-r--r--
events_time_zone.test
11.38
KB
-rw-r--r--
events_trans.test
3.33
KB
-rw-r--r--
events_trans_notembedded.test
1.82
KB
-rw-r--r--
examined_rows.test
3.84
KB
-rw-r--r--
execution_constants.test
3.32
KB
-rw-r--r--
explain.test
12.41
KB
-rw-r--r--
explain_for_connection_crash.t...
2.68
KB
-rw-r--r--
explain_for_connection_rqg_jso...
1.79
KB
-rw-r--r--
explain_for_connection_rqg_tra...
1.8
KB
-rw-r--r--
explain_for_connection_small_j...
24
B
-rw-r--r--
explain_for_connection_small_j...
2.18
KB
-rw-r--r--
explain_for_connection_small_t...
24
B
-rw-r--r--
explain_for_connection_small_t...
2.19
KB
-rw-r--r--
explain_json_all.test
518
B
-rw-r--r--
explain_json_none.test
617
B
-rw-r--r--
explain_other-master.opt
24
B
-rw-r--r--
explain_other.test
14.81
KB
-rw-r--r--
file_contents.test
2.89
KB
-rw-r--r--
filesort_debug-master.opt
0
B
-rw-r--r--
filesort_debug.test
5.54
KB
-rw-r--r--
filesort_merge.test
1.89
KB
-rw-r--r--
filesort_pack.test
801
B
-rw-r--r--
filter_single_col_idx_big.test
2.72
KB
-rw-r--r--
filter_single_col_idx_small.te...
3.64
KB
-rw-r--r--
fix_priv_tables.test
2.55
KB
-rw-r--r--
flush.test
17.3
KB
-rw-r--r--
flush2-master.opt
15
B
-rw-r--r--
flush2.test
689
B
-rw-r--r--
flush_block_commit.test
2.87
KB
-rw-r--r--
flush_block_commit_notembedded...
1.84
KB
-rw-r--r--
flush_read_lock.test
75.93
KB
-rw-r--r--
flush_read_lock_kill.test
2.32
KB
-rw-r--r--
flush_table-master.opt
21
B
-rw-r--r--
flush_table.test
15.92
KB
-rw-r--r--
foreign_key.test
3.91
KB
-rw-r--r--
fulltext.test
22.77
KB
-rw-r--r--
fulltext2.test
8.42
KB
-rw-r--r--
fulltext3.test
1.35
KB
-rw-r--r--
fulltext_cache.test
1.74
KB
-rw-r--r--
fulltext_distinct.test
1.55
KB
-rw-r--r--
fulltext_left_join.test
4.13
KB
-rw-r--r--
fulltext_multi.test
982
B
-rw-r--r--
fulltext_order_by.test
5.72
KB
-rw-r--r--
fulltext_plugin-master.opt
19
B
-rw-r--r--
fulltext_plugin.test
689
B
-rw-r--r--
fulltext_update.test
1.26
KB
-rw-r--r--
fulltext_var.test
1.41
KB
-rw-r--r--
func_aes.test
5.76
KB
-rw-r--r--
func_aes_cfb1.test
445
B
-rw-r--r--
func_aes_cfb128.test
455
B
-rw-r--r--
func_aes_cfb8.test
445
B
-rw-r--r--
func_aes_kdf_hkdf.test
2.5
KB
-rw-r--r--
func_aes_kdf_pbkdf2_hmac.test
3.88
KB
-rw-r--r--
func_aes_misc.test
6.11
KB
-rw-r--r--
func_aes_ofb.test
440
B
-rw-r--r--
func_analyse.test
9.59
KB
-rw-r--r--
func_bitwise_ops.test
18.39
KB
-rw-r--r--
func_compress.test
3.63
KB
-rw-r--r--
func_concat.test
4
KB
-rw-r--r--
func_crypt.test
1.68
KB
-rw-r--r--
func_date_add.test
3.36
KB
-rw-r--r--
func_default.test
1.21
KB
-rw-r--r--
func_des_encrypt.test
886
B
-rw-r--r--
func_digest.test
109.41
KB
-rw-r--r--
func_encrypt-master.opt
59
B
-rw-r--r--
func_encrypt.test
5.55
KB
-rw-r--r--
func_encrypt_nossl.test
1.37
KB
-rw-r--r--
func_encrypt_ucs2.test
546
B
-rw-r--r--
func_equal.test
1.1
KB
-rw-r--r--
func_found_rows.test
288
B
-rw-r--r--
func_gconcat.test
28.1
KB
-rw-r--r--
func_group.test
39.21
KB
-rw-r--r--
func_group_innodb.test
3.57
KB
-rw-r--r--
func_group_innodb_16k.test
605
B
-rw-r--r--
func_if.test
5.32
KB
-rw-r--r--
func_in_all.test
749
B
-rw-r--r--
func_in_icp.test
822
B
-rw-r--r--
func_in_icp_mrr.test
795
B
-rw-r--r--
func_in_mrr.test
820
B
-rw-r--r--
func_in_mrr_cost.test
830
B
-rw-r--r--
func_in_none.test
862
B
-rw-r--r--
func_isnull.test
1010
B
-rw-r--r--
func_like.test
6.39
KB
-rw-r--r--
func_math.test
26.62
KB
-rw-r--r--
func_misc-master.opt
21
B
-rw-r--r--
func_misc.test
27.43
KB
-rw-r--r--
func_op.test
965
B
-rw-r--r--
func_regexp.test
3.09
KB
-rw-r--r--
func_rollback.test
14.3
KB
-rw-r--r--
func_sapdb.test
7.58
KB
-rw-r--r--
func_set.test
5.87
KB
-rw-r--r--
func_str.test
63.27
KB
-rw-r--r--
func_str_debug.test
421
B
-rw-r--r--
func_str_no_ps.test
1.02
KB
-rw-r--r--
func_system.test
1.82
KB
-rw-r--r--
func_test.test
9.41
KB
-rw-r--r--
func_time.test
44.53
KB
-rw-r--r--
func_timestamp.test
662
B
-rw-r--r--
func_weight_string.test
6.36
KB
-rw-r--r--
function_defaults.test
825
B
-rw-r--r--
gcc296.test
527
B
-rw-r--r--
get_diagnostics.test
21.19
KB
-rw-r--r--
get_table_share.test
24.82
KB
-rw-r--r--
gis-debug.test
309
B
-rw-r--r--
gis-precise.test
103.82
KB
-rw-r--r--
gis-rt-precise.test
1.5
KB
-rw-r--r--
gis-rtree.test
46.36
KB
-rw-r--r--
gis.test
102
KB
-rw-r--r--
grant.test
82.65
KB
-rw-r--r--
grant2.test
33.81
KB
-rw-r--r--
grant3-master.opt
19
B
-rw-r--r--
grant3.test
6.85
KB
-rw-r--r--
grant4.test
8.44
KB
-rw-r--r--
grant_alter_user.test
28.77
KB
-rw-r--r--
grant_alter_user_qa-master.opt
68
B
-rw-r--r--
grant_alter_user_qa.test
67.2
KB
-rw-r--r--
grant_cache-master.opt
21
B
-rw-r--r--
grant_cache.test
591
B
-rw-r--r--
grant_debug.test
7.87
KB
-rw-r--r--
grant_explain_non_select.test
7.63
KB
-rw-r--r--
grant_lowercase_fs.test
1.02
KB
-rw-r--r--
grant_user_lock.test
15.07
KB
-rw-r--r--
grant_user_lock_qa-master.opt
32
B
-rw-r--r--
grant_user_lock_qa.test
33.86
KB
-rw-r--r--
greedy_optimizer-master.opt
21
B
-rw-r--r--
greedy_optimizer.test
30.83
KB
-rw-r--r--
greedy_search.test
9.91
KB
-rw-r--r--
group_by.test
77.53
KB
-rw-r--r--
group_by_fd_no_prot.test
411
B
-rw-r--r--
group_by_fd_ps_prot.test
160
B
-rw-r--r--
group_min_max.test
70.06
KB
-rw-r--r--
group_min_max_innodb.test
13.85
KB
-rw-r--r--
gtid_next_xa_binlog_off-master...
15
B
-rw-r--r--
gtid_next_xa_binlog_off.test
268
B
-rw-r--r--
gtids_anonymous_trxs_violation...
2.31
KB
-rw-r--r--
handler_innodb.test
571
B
-rw-r--r--
handler_myisam.test
4.46
KB
-rw-r--r--
handler_read_last.test
733
B
-rw-r--r--
having.test
25.07
KB
-rw-r--r--
heap.test
15.62
KB
-rw-r--r--
heap_auto_increment.test
927
B
-rw-r--r--
heap_btree.test
8.3
KB
-rw-r--r--
heap_hash.test
9.77
KB
-rw-r--r--
help.test
4.89
KB
-rw-r--r--
help_verbose.test
3.38
KB
-rw-r--r--
host_cache_size_functionality....
7.61
KB
-rw-r--r--
ignore_strict.test
20.23
KB
-rw-r--r--
implicit_char_to_num_conversio...
7.63
KB
-rw-r--r--
implicit_commit-master.opt
32
B
-rw-r--r--
implicit_commit.test
19.77
KB
-rw-r--r--
import_schema_mismatch.test
956
B
-rw-r--r--
index_merge_delete.test
306
B
-rw-r--r--
index_merge_innodb.test
2.21
KB
-rw-r--r--
index_merge_insert-and-replace...
330
B
-rw-r--r--
index_merge_intersect_dml.test
157
B
-rw-r--r--
index_merge_myisam.test
5.53
KB
-rw-r--r--
index_merge_update.test
307
B
-rw-r--r--
information_schema-big.test
1.77
KB
-rw-r--r--
information_schema.test
61.02
KB
-rw-r--r--
information_schema_chmod.test
835
B
-rw-r--r--
information_schema_db.test
7.18
KB
-rw-r--r--
information_schema_inno.test
3.61
KB
-rw-r--r--
information_schema_parameters....
12.73
KB
-rw-r--r--
information_schema_part.test
4.15
KB
-rw-r--r--
information_schema_routines.te...
13.75
KB
-rw-r--r--
init_connect-master.opt
32
B
-rw-r--r--
init_connect.test
6.9
KB
-rw-r--r--
init_file-master.opt
51
B
-rw-r--r--
init_file.test
1.06
KB
-rw-r--r--
initialize-bug20350099-master....
23
B
-rw-r--r--
initialize-bug20350099.test
3.51
KB
-rw-r--r--
initialize-bug20504142.test
3.8
KB
-rw-r--r--
initialize-bug21335821-master....
23
B
-rw-r--r--
initialize-bug21335821.test
3.06
KB
-rw-r--r--
initialize-errors.test
2.67
KB
-rw-r--r--
initialize-ignore-db.test
2.96
KB
-rw-r--r--
initialize-init-acls.test
3.26
KB
-rw-r--r--
initialize-sha256.test
3.51
KB
-rw-r--r--
initialize.test
9.45
KB
-rw-r--r--
initialize_gtid.test
2.8
KB
-rw-r--r--
innodb_deadlock-master.opt
29
B
-rw-r--r--
innodb_deadlock.test
1.43
KB
-rw-r--r--
innodb_disabled-master.opt
96
B
-rw-r--r--
innodb_disabled.test
2.1
KB
-rw-r--r--
innodb_explain_json_non_select...
1.02
KB
-rw-r--r--
innodb_explain_json_non_select...
1.03
KB
-rw-r--r--
innodb_explain_non_select_all....
855
B
-rw-r--r--
innodb_explain_non_select_none...
892
B
-rw-r--r--
innodb_icp.test
784
B
-rw-r--r--
innodb_icp_all.test
679
B
-rw-r--r--
innodb_icp_none.test
817
B
-rw-r--r--
innodb_ignore_builtin-master.o...
38
B
-rw-r--r--
innodb_ignore_builtin.test
442
B
-rw-r--r--
innodb_log_file_size_functiona...
5.43
KB
-rw-r--r--
innodb_mrr-master.opt
35
B
-rw-r--r--
innodb_mrr.test
870
B
-rw-r--r--
innodb_mrr_all-master.opt
35
B
-rw-r--r--
innodb_mrr_all.test
756
B
-rw-r--r--
innodb_mrr_cost-master.opt
35
B
-rw-r--r--
innodb_mrr_cost.test
869
B
-rw-r--r--
innodb_mrr_cost_all-master.opt
35
B
-rw-r--r--
innodb_mrr_cost_all.test
755
B
-rw-r--r--
innodb_mrr_cost_icp-master.opt
35
B
-rw-r--r--
innodb_mrr_cost_icp.test
824
B
-rw-r--r--
innodb_mrr_icp-master.opt
35
B
-rw-r--r--
innodb_mrr_icp.test
825
B
-rw-r--r--
innodb_mrr_none-master.opt
35
B
-rw-r--r--
innodb_mrr_none.test
876
B
-rw-r--r--
innodb_mysql_lock-master.opt
31
B
-rw-r--r--
innodb_mysql_lock.test
7.18
KB
-rw-r--r--
innodb_mysql_lock2.test
29.15
KB
-rw-r--r--
innodb_mysql_sync.test
31.39
KB
-rw-r--r--
innodb_pk_extension_off.test
298
B
-rw-r--r--
innodb_pk_extension_on.test
296
B
-rw-r--r--
innodb_recovery_with_upper_cas...
25
B
-rw-r--r--
innodb_recovery_with_upper_cas...
1.75
KB
-rw-r--r--
insert.test
19.57
KB
-rw-r--r--
insert_debug-master.opt
29
B
-rw-r--r--
insert_debug.test
2.39
KB
-rw-r--r--
insert_notembedded.test
5.47
KB
-rw-r--r--
insert_select.test
14.79
KB
-rw-r--r--
insert_update.test
14.27
KB
-rw-r--r--
installdb-bad-cipher.test
875
B
-rw-r--r--
internal_tmp_disk_storage_engi...
102.07
KB
-rw-r--r--
ipv4_as_ipv6-master.opt
43
B
-rw-r--r--
ipv4_as_ipv6.test
2.18
KB
-rw-r--r--
ipv6-master.opt
20
B
-rw-r--r--
ipv6.test
1.28
KB
-rw-r--r--
is_deprecation.test
166
B
-rw-r--r--
join.test
41.36
KB
-rw-r--r--
join_cache_bka.test
341
B
-rw-r--r--
join_cache_bka_nixbnl.test
408
B
-rw-r--r--
join_cache_bkaunique.test
408
B
-rw-r--r--
join_cache_bnl.test
435
B
-rw-r--r--
join_cache_nojb.test
504
B
-rw-r--r--
join_crash.test
4.99
KB
-rw-r--r--
join_file_handler.test
1
KB
-rw-r--r--
join_nested.test
43.89
KB
-rw-r--r--
join_nested_bka.test
2.5
KB
-rw-r--r--
join_nested_bka_nixbnl.test
2.52
KB
-rw-r--r--
join_outer.test
60.27
KB
-rw-r--r--
join_outer_bka.test
379
B
-rw-r--r--
join_outer_bka_nixbnl.test
401
B
-rw-r--r--
join_outer_innodb.test
2.23
KB
-rw-r--r--
key.test
17.2
KB
-rw-r--r--
key_cache-master.opt
95
B
-rw-r--r--
key_cache.test
8.48
KB
-rw-r--r--
key_diff.test
573
B
-rw-r--r--
key_primary.test
461
B
-rw-r--r--
keywords.test
5.47
KB
-rw-r--r--
kill.test
17.11
KB
-rw-r--r--
kill_debug-master.opt
21
B
-rw-r--r--
kill_debug.test
1.55
KB
-rw-r--r--
limit.test
7.26
KB
-rw-r--r--
loaddata.test
22.6
KB
-rw-r--r--
loaddata_autocom_innodb.test
98
B
-rw-r--r--
loadxml.test
3.75
KB
-rw-r--r--
locale.test
3.23
KB
-rw-r--r--
lock.test
14.35
KB
-rw-r--r--
lock_multi.test
114.87
KB
-rw-r--r--
lock_multi_bug38499.test
4.7
KB
-rw-r--r--
lock_multi_bug38691.test
2.98
KB
-rw-r--r--
lock_sync-master.opt
58
B
-rw-r--r--
lock_sync.test
35.79
KB
-rw-r--r--
lock_tables_lost_commit-master...
24
B
-rw-r--r--
lock_tables_lost_commit.test
845
B
-rw-r--r--
locking_service-master.opt
21
B
-rw-r--r--
locking_service.test
35.37
KB
-rw-r--r--
log_errchk.test
2.09
KB
-rw-r--r--
log_state-master.opt
59
B
-rw-r--r--
log_state.test
10.29
KB
-rw-r--r--
log_state_bug33693-master.opt
60
B
-rw-r--r--
log_state_bug33693.test
568
B
-rw-r--r--
log_tables-big-master.opt
17
B
-rw-r--r--
log_tables-big.test
1.32
KB
-rw-r--r--
log_tables-master.opt
41
B
-rw-r--r--
log_tables.test
30.83
KB
-rw-r--r--
log_tables_debug.test
2.83
KB
-rw-r--r--
log_tables_upgrade.test
989
B
-rw-r--r--
log_timestamps-master.opt
21
B
-rw-r--r--
log_timestamps.test
89
B
-rw-r--r--
long_tmpdir-master.opt
141
B
-rw-r--r--
long_tmpdir-master.sh
190
B
-rwxr-xr-x
long_tmpdir.test
216
B
-rw-r--r--
lowercase_fs_off.test
2.82
KB
-rw-r--r--
lowercase_fs_on.test
1.33
KB
-rw-r--r--
lowercase_mixed_tmpdir-master....
68
B
-rw-r--r--
lowercase_mixed_tmpdir-master....
179
B
-rwxr-xr-x
lowercase_mixed_tmpdir.test
292
B
-rw-r--r--
lowercase_mixed_tmpdir_innodb-...
68
B
-rw-r--r--
lowercase_mixed_tmpdir_innodb-...
180
B
-rwxr-xr-x
lowercase_mixed_tmpdir_innodb....
299
B
-rw-r--r--
lowercase_table-master.opt
25
B
-rw-r--r--
lowercase_table.test
3.68
KB
-rw-r--r--
lowercase_table2.test
8.28
KB
-rw-r--r--
lowercase_table4-master.opt
27
B
-rw-r--r--
lowercase_table4.test
4.01
KB
-rw-r--r--
lowercase_table5.test
1009
B
-rw-r--r--
lowercase_table_grant-master.o...
25
B
-rw-r--r--
lowercase_table_grant.test
1.05
KB
-rw-r--r--
lowercase_table_qcache-master....
46
B
-rw-r--r--
lowercase_table_qcache.test
698
B
-rw-r--r--
lowercase_utf8-master.opt
58
B
-rw-r--r--
lowercase_utf8.test
207
B
-rw-r--r--
lowercase_view-master.opt
27
B
-rw-r--r--
lowercase_view.test
6.29
KB
-rw-r--r--
m_i_db.test
9.24
KB
-rw-r--r--
m_i_db_config.cnf
38
B
-rw-r--r--
m_i_db_createschema.sql
10.29
KB
-rw-r--r--
main.lowercase_table_qcache-ma...
21
B
-rw-r--r--
max_statement_time-master.opt
21
B
-rw-r--r--
max_statement_time.test
14.33
KB
-rw-r--r--
mdl_sync-master.opt
53
B
-rw-r--r--
mdl_sync.test
183.93
KB
-rw-r--r--
mdl_tablespace.test
41.99
KB
-rw-r--r--
merge-big.test
3.11
KB
-rw-r--r--
merge.test
83.59
KB
-rw-r--r--
merge_innodb.test
1.06
KB
-rw-r--r--
merge_mmap-master.opt
18
B
-rw-r--r--
merge_mmap.test
4.1
KB
-rw-r--r--
metadata.test
7.31
KB
-rw-r--r--
mix2_myisam-master.opt
33
B
-rw-r--r--
mix2_myisam.test
961
B
-rw-r--r--
mix2_myisam_ucs2.test
940
B
-rw-r--r--
multi_plugin_load-master.opt
92
B
-rw-r--r--
multi_plugin_load.test
774
B
-rw-r--r--
multi_plugin_load_add-master.o...
68
B
-rw-r--r--
multi_plugin_load_add.test
495
B
-rw-r--r--
multi_plugin_load_add2-master....
111
B
-rw-r--r--
multi_plugin_load_add2.test
495
B
-rw-r--r--
multi_statement-master.opt
80
B
-rw-r--r--
multi_statement.test
971
B
-rw-r--r--
multi_update-master.opt
22
B
-rw-r--r--
multi_update.test
26.93
KB
-rw-r--r--
multi_update2-master.opt
22
B
-rw-r--r--
multi_update2.test
2.1
KB
-rw-r--r--
multi_update_innodb.test
4.41
KB
-rw-r--r--
multi_update_tiny_hash-master....
28
B
-rw-r--r--
multi_update_tiny_hash.test
1.6
KB
-rw-r--r--
myisam-blob-master.opt
60
B
-rw-r--r--
myisam-blob.test
1.42
KB
-rw-r--r--
myisam-system.test
692
B
-rw-r--r--
myisam.test
66.93
KB
-rw-r--r--
myisam_crash_before_flush_keys...
36
B
-rw-r--r--
myisam_crash_before_flush_keys...
1.7
KB
-rw-r--r--
myisam_debug.test
1.57
KB
-rw-r--r--
myisam_explain_json_non_select...
931
B
-rw-r--r--
myisam_explain_json_non_select...
1.02
KB
-rw-r--r--
myisam_explain_non_select_all....
794
B
-rw-r--r--
myisam_explain_non_select_none...
885
B
-rw-r--r--
myisam_icp.test
880
B
-rw-r--r--
myisam_icp_all.test
775
B
-rw-r--r--
myisam_icp_none.test
912
B
-rw-r--r--
myisam_mrr.test
1.03
KB
-rw-r--r--
myisam_mrr_all.test
943
B
-rw-r--r--
myisam_mrr_cost.test
1.04
KB
-rw-r--r--
myisam_mrr_cost_all.test
942
B
-rw-r--r--
myisam_mrr_cost_icp.test
1021
B
-rw-r--r--
myisam_mrr_icp.test
1011
B
-rw-r--r--
myisam_mrr_none.test
1.04
KB
-rw-r--r--
myisam_recover-master.opt
31
B
-rw-r--r--
myisam_recover.test
5.73
KB
-rw-r--r--
myisam_row_rpl-master.opt
54
B
-rw-r--r--
myisam_row_rpl-slave.opt
54
B
-rw-r--r--
myisam_row_rpl.test
1.93
KB
-rw-r--r--
myisampack.test
12.57
KB
-rw-r--r--
mysql-bug41486.test
1.54
KB
-rw-r--r--
mysql-bug45236.test
1.41
KB
-rw-r--r--
mysql.test
24.5
KB
-rw-r--r--
mysql_batch_mode.test
441
B
-rw-r--r--
mysql_binary_mode.test
5.56
KB
-rw-r--r--
mysql_client_test-master.opt
150
B
-rw-r--r--
mysql_client_test.test
1.34
KB
-rw-r--r--
mysql_client_test_embedded.tes...
887
B
-rw-r--r--
mysql_client_test_qcache-maste...
21
B
-rw-r--r--
mysql_client_test_qcache.test
856
B
-rw-r--r--
mysql_comments.sql
4.58
KB
-rw-r--r--
mysql_comments.test
1.63
KB
-rw-r--r--
mysql_config_editor.test
9.41
KB
-rw-r--r--
mysql_cp932.test
1.04
KB
-rw-r--r--
mysql_delimiter.sql
1.48
KB
-rw-r--r--
mysql_delimiter_19799.sql
13
B
-rw-r--r--
mysql_delimiter_source.sql
122
B
-rw-r--r--
mysql_embedded.test
2.07
KB
-rw-r--r--
mysql_embedded_client_test.tes...
1.55
KB
-rw-r--r--
mysql_locale_posix.test
7.21
KB
-rw-r--r--
mysql_not_windows-master.opt
28
B
-rw-r--r--
mysql_not_windows.test
923
B
-rw-r--r--
mysql_plugin-master.opt
32
B
-rw-r--r--
mysql_plugin.test
12.17
KB
-rw-r--r--
mysql_protocols.test
716
B
-rw-r--r--
mysql_ssl-master.opt
11
B
-rw-r--r--
mysql_ssl.test
788
B
-rw-r--r--
mysql_ssl_default.test
1.6
KB
-rw-r--r--
mysql_tzinfo_to_sql.test
2.49
KB
-rw-r--r--
mysql_tzinfo_to_sql_sys.test
4.8
KB
-rw-r--r--
mysql_upgrade.test
43.56
KB
-rw-r--r--
mysql_upgrade_slave_master_inf...
6.35
KB
-rw-r--r--
mysql_upgrade_ssl.test
2.15
KB
-rw-r--r--
mysql_upgrade_with_session_use...
2.18
KB
-rw-r--r--
mysqladmin.test
3.12
KB
-rw-r--r--
mysqladmin_shutdown.test
868
B
-rw-r--r--
mysqlbinlog-master.opt
65
B
-rw-r--r--
mysqlbinlog.test
18.92
KB
-rw-r--r--
mysqlbinlog_base64_flag.test
5.53
KB
-rw-r--r--
mysqlbinlog_debug.test
981
B
-rw-r--r--
mysqlbinlog_hexdump.test
225
B
-rw-r--r--
mysqlbinlog_mixed_or_statment....
1.18
KB
-rw-r--r--
mysqlbinlog_raw_mode.test
1.98
KB
-rw-r--r--
mysqlbinlog_raw_mode_win.test
356
B
-rw-r--r--
mysqlbinlog_row_big.test
4.21
KB
-rw-r--r--
mysqlcheck.test
10.45
KB
-rw-r--r--
mysqld--defaults-file.test
1.19
KB
-rw-r--r--
mysqld--help-notwin.test
161
B
-rw-r--r--
mysqld--help-win.test
366
B
-rw-r--r--
mysqld_daemon.test
2.05
KB
-rw-r--r--
mysqld_safe.sh
40
B
-rwxr-xr-x
mysqld_safe.test
3.06
KB
-rw-r--r--
mysqldump-binary.test
2.24
KB
-rw-r--r--
mysqldump-compat.opt
31
B
-rw-r--r--
mysqldump-compat.test
447
B
-rw-r--r--
mysqldump-max-master.opt
32
B
-rw-r--r--
mysqldump-max.test
39.96
KB
-rw-r--r--
mysqldump-no-binlog-master.opt
15
B
-rw-r--r--
mysqldump-no-binlog.test
195
B
-rw-r--r--
mysqldump.test
92.39
KB
-rw-r--r--
mysqldump_bug29998457.test
1.22
KB
-rw-r--r--
mysqldump_bug30042589.test
987
B
-rw-r--r--
mysqldump_bugs.test
3.27
KB
-rw-r--r--
mysqldump_gtid_state-master.op...
72
B
-rw-r--r--
mysqldump_gtid_state.test
4.23
KB
-rw-r--r--
mysqldump_restore.test
3.85
KB
-rw-r--r--
mysqldumpslow.test
1.81
KB
-rw-r--r--
mysqlimport.test
1.29
KB
-rw-r--r--
mysqlpump.test
8.3
KB
-rw-r--r--
mysqlpump_basic.test
22.51
KB
-rw-r--r--
mysqlpump_bugs.test
1.63
KB
-rw-r--r--
mysqlpump_charset.test
4.22
KB
-rw-r--r--
mysqlpump_concurrency.test
1.94
KB
-rw-r--r--
mysqlpump_extended.test
13.79
KB
-rw-r--r--
mysqlpump_filters.test
5.95
KB
-rw-r--r--
mysqlpump_multi_thread.test
4.09
KB
-rw-r--r--
mysqlpump_partial_bkp.test
1.63
KB
-rw-r--r--
mysqlshow.test
3.05
KB
-rw-r--r--
mysqlslap.test
6.96
KB
-rw-r--r--
mysqltest.test
77.87
KB
-rw-r--r--
named_pipe-master.opt
26
B
-rw-r--r--
named_pipe.test
807
B
-rw-r--r--
negation_elimination.test
4.13
KB
-rw-r--r--
no-threads-master.opt
29
B
-rw-r--r--
no-threads.test
408
B
-rw-r--r--
no_binlog.test
166
B
-rw-r--r--
no_binlog_gtid_empty_statement...
1.94
KB
-rw-r--r--
no_binlog_gtid_empty_transacti...
42
B
-rw-r--r--
no_binlog_gtid_empty_transacti...
1.49
KB
-rw-r--r--
no_binlog_gtid_mode_on-master....
42
B
-rw-r--r--
no_binlog_gtid_mode_on.test
9.1
KB
-rw-r--r--
no_binlog_gtid_mode_on_explici...
42
B
-rw-r--r--
no_binlog_gtid_mode_on_explici...
3.29
KB
-rw-r--r--
no_binlog_gtid_next_begin_caus...
42
B
-rw-r--r--
no_binlog_gtid_next_begin_caus...
864
B
-rw-r--r--
no_binlog_gtid_next_partially_...
42
B
-rw-r--r--
no_binlog_gtid_next_partially_...
18.58
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
2.35
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
42
B
-rw-r--r--
no_binlog_gtid_next_partially_...
4.94
KB
-rw-r--r--
no_binlog_gtid_next_single_stm...
1017
B
-rw-r--r--
no_binlog_gtid_next_temporary_...
2.7
KB
-rw-r--r--
no_engine_substitution-master....
54
B
-rw-r--r--
no_engine_substitution.test
4.7
KB
-rw-r--r--
not_embedded_server-master.opt
16
B
-rw-r--r--
not_embedded_server.test
5.61
KB
-rw-r--r--
not_partition-master.opt
23
B
-rw-r--r--
not_partition.test
3.12
KB
-rw-r--r--
null.test
9.02
KB
-rw-r--r--
null_key_all.test
687
B
-rw-r--r--
null_key_icp.test
779
B
-rw-r--r--
null_key_none.test
819
B
-rw-r--r--
odbc.test
942
B
-rw-r--r--
olap.test
14.29
KB
-rw-r--r--
openssl_1.test
10.34
KB
-rw-r--r--
opt_costmodel.test
6.89
KB
-rw-r--r--
opt_costmodel_downgrade.test
793
B
-rw-r--r--
opt_costmodel_flush.test
7.71
KB
-rw-r--r--
opt_costmodel_pfs.test
394
B
-rw-r--r--
opt_costmodel_restart.test
3.46
KB
-rw-r--r--
opt_costmodel_tables.test
5.53
KB
-rw-r--r--
opt_costmodel_warnings.test
4.93
KB
-rw-r--r--
opt_hint_timeout.test
2.07
KB
-rw-r--r--
opt_hints.test
29.22
KB
-rw-r--r--
opt_hints_lowercase.test
1.06
KB
-rw-r--r--
opt_hints_pfs.test
1.17
KB
-rw-r--r--
opt_hints_subquery.test
36.32
KB
-rw-r--r--
optimizer_bug12837084.test
14.36
KB
-rw-r--r--
optimizer_debug_sync.test
2.23
KB
-rw-r--r--
optimizer_switch.test
10.35
KB
-rw-r--r--
order_by_all.test
752
B
-rw-r--r--
order_by_icp_mrr.test
797
B
-rw-r--r--
order_by_limit.test
7.82
KB
-rw-r--r--
order_by_none.test
864
B
-rw-r--r--
order_by_sortkey.test
2.56
KB
-rw-r--r--
order_fill_sortbuf-master.opt
25
B
-rw-r--r--
order_fill_sortbuf.test
579
B
-rw-r--r--
outfile.test
4.23
KB
-rw-r--r--
outfile_loaddata.test
10.92
KB
-rw-r--r--
overflow.test
578
B
-rw-r--r--
packet.test
6.32
KB
-rw-r--r--
parser-big-32bit.test
145
B
-rw-r--r--
parser-big-64bit.test
145
B
-rw-r--r--
parser-master.opt
30
B
-rw-r--r--
parser.test
36.07
KB
-rw-r--r--
parser_bug21114_innodb.test
11.79
KB
-rw-r--r--
parser_not_embedded.test
2.53
KB
-rw-r--r--
parser_precedence.test
12.39
KB
-rw-r--r--
parser_stack.test
12.07
KB
-rw-r--r--
partition.test
68.35
KB
-rw-r--r--
partition_archive.test
4.19
KB
-rw-r--r--
partition_binlog.test
1.2
KB
-rw-r--r--
partition_binlog_stmt.test
985
B
-rw-r--r--
partition_blackhole.test
661
B
-rw-r--r--
partition_bug18198.test
7.88
KB
-rw-r--r--
partition_cache-master.opt
21
B
-rw-r--r--
partition_cache.test
1.41
KB
-rw-r--r--
partition_charset.test
675
B
-rw-r--r--
partition_column.test
16.25
KB
-rw-r--r--
partition_column_prune.test
2.35
KB
-rw-r--r--
partition_csv.test
2.52
KB
-rw-r--r--
partition_datatype.test
19.03
KB
-rw-r--r--
partition_debug.test
2.07
KB
-rw-r--r--
partition_debug_sync.test
7.01
KB
-rw-r--r--
partition_debug_sync_stmt.test
3.35
KB
-rw-r--r--
partition_deprecation.test
3.87
KB
-rw-r--r--
partition_error.test
62.95
KB
-rw-r--r--
partition_exchange.test
31.54
KB
-rw-r--r--
partition_explicit_prune.test
29.83
KB
-rw-r--r--
partition_federated.test
531
B
-rw-r--r--
partition_grant.test
2.4
KB
-rw-r--r--
partition_hash.test
5.07
KB
-rw-r--r--
partition_index_innodb.test
5.9
KB
-rw-r--r--
partition_index_myisam.test
3.88
KB
-rw-r--r--
partition_innodb.test
41.82
KB
-rw-r--r--
partition_innodb_plugin.test
4.73
KB
-rw-r--r--
partition_innodb_semi_consiste...
61
B
-rw-r--r--
partition_innodb_semi_consiste...
4.09
KB
-rw-r--r--
partition_innodb_stmt.test
1.22
KB
-rw-r--r--
partition_innodb_tablespace.te...
16.16
KB
-rw-r--r--
partition_key_cache.test
11.03
KB
-rw-r--r--
partition_list.test
8.14
KB
-rw-r--r--
partition_locking.test
63.4
KB
-rw-r--r--
partition_locking_4.test
1.53
KB
-rw-r--r--
partition_mgm.test
4.59
KB
-rw-r--r--
partition_mgm_err.test
6.47
KB
-rw-r--r--
partition_mgm_err2.test
940
B
-rw-r--r--
partition_myisam.test
8.17
KB
-rw-r--r--
partition_not_blackhole-master...
23
B
-rw-r--r--
partition_not_blackhole.test
875
B
-rw-r--r--
partition_not_windows-master.o...
19
B
-rw-r--r--
partition_not_windows.test
7.68
KB
-rw-r--r--
partition_order.test
17.9
KB
-rw-r--r--
partition_plugin-master.opt
22
B
-rw-r--r--
partition_plugin.test
3.82
KB
-rw-r--r--
partition_pruning.test
72.39
KB
-rw-r--r--
partition_range.test
31.76
KB
-rw-r--r--
partition_rename_longfilename....
2.02
KB
-rw-r--r--
partition_symlink.test
7.38
KB
-rw-r--r--
partition_sync.test
2.16
KB
-rw-r--r--
partition_truncate.test
742
B
-rw-r--r--
partition_utf8.test
1.63
KB
-rw-r--r--
partition_windows.test
1.28
KB
-rw-r--r--
per_thread_connection_handler....
1.99
KB
-rw-r--r--
perror-win.test
1.1
KB
-rw-r--r--
perror.test
778
B
-rw-r--r--
plugin-master.opt
20
B
-rw-r--r--
plugin.test
8.24
KB
-rw-r--r--
plugin_auth-master.opt
35
B
-rw-r--r--
plugin_auth.test
28.96
KB
-rw-r--r--
plugin_auth_expire-master.opt
35
B
-rw-r--r--
plugin_auth_expire.test
706
B
-rw-r--r--
plugin_auth_qa-master.opt
35
B
-rw-r--r--
plugin_auth_qa.test
12.3
KB
-rw-r--r--
plugin_auth_qa_1-master.opt
35
B
-rw-r--r--
plugin_auth_qa_1.test
14.55
KB
-rw-r--r--
plugin_auth_qa_2-master.opt
55
B
-rw-r--r--
plugin_auth_qa_2.test
7.94
KB
-rw-r--r--
plugin_auth_qa_3-master.opt
49
B
-rw-r--r--
plugin_auth_qa_3.test
1.51
KB
-rw-r--r--
plugin_auth_sha256-master.opt
170
B
-rw-r--r--
plugin_auth_sha256.test
4.83
KB
-rw-r--r--
plugin_auth_sha256_2-master.op...
224
B
-rw-r--r--
plugin_auth_sha256_2.test
1.95
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
224
B
-rw-r--r--
plugin_auth_sha256_server_defa...
2.93
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
48
B
-rw-r--r--
plugin_auth_sha256_server_defa...
3.68
KB
-rw-r--r--
plugin_auth_sha256_tls.test
2.16
KB
-rw-r--r--
plugin_auth_user_lock-master.o...
34
B
-rw-r--r--
plugin_auth_user_lock.test
1.27
KB
-rw-r--r--
plugin_load-master.opt
76
B
-rw-r--r--
plugin_load.test
125
B
-rw-r--r--
plugin_load_option-master.opt
85
B
-rw-r--r--
plugin_load_option.test
265
B
-rw-r--r--
plugin_not_embedded-master.opt
20
B
-rw-r--r--
plugin_not_embedded.test
1
KB
-rw-r--r--
preload-master.opt
21
B
-rw-r--r--
preload.test
2.65
KB
-rw-r--r--
profiling.test
9.24
KB
-rw-r--r--
ps-master.opt
73
B
-rw-r--r--
ps.test
93.48
KB
-rw-r--r--
ps_10nestset.test
2.75
KB
-rw-r--r--
ps_11bugs.test
7.05
KB
-rw-r--r--
ps_1general.test
28.24
KB
-rw-r--r--
ps_2myisam-master.opt
21
B
-rw-r--r--
ps_2myisam.test
1.24
KB
-rw-r--r--
ps_3innodb-master.opt
53
B
-rw-r--r--
ps_3innodb.test
638
B
-rw-r--r--
ps_4heap-master.opt
21
B
-rw-r--r--
ps_4heap.test
1.62
KB
-rw-r--r--
ps_5merge-master.opt
21
B
-rw-r--r--
ps_5merge.test
2.8
KB
-rw-r--r--
ps_ddl-master.opt
43
B
-rw-r--r--
ps_ddl.test
53.8
KB
-rw-r--r--
ps_ddl1.test
11.04
KB
-rw-r--r--
ps_grant.test
4.03
KB
-rw-r--r--
ps_not_windows.test
755
B
-rw-r--r--
ps_w_max_indexes_64.test
5.64
KB
-rw-r--r--
query_cache-master.opt
21
B
-rw-r--r--
query_cache.test
45.66
KB
-rw-r--r--
query_cache_28249-master.opt
21
B
-rw-r--r--
query_cache_28249.test
4.2
KB
-rw-r--r--
query_cache_debug-master.opt
21
B
-rw-r--r--
query_cache_debug.test
10.91
KB
-rw-r--r--
query_cache_disabled-master.op...
21
B
-rw-r--r--
query_cache_disabled.test
1.17
KB
-rw-r--r--
query_cache_merge-master.opt
21
B
-rw-r--r--
query_cache_merge.test
4.68
KB
-rw-r--r--
query_cache_notembedded-master...
21
B
-rw-r--r--
query_cache_notembedded.test
7.5
KB
-rw-r--r--
query_cache_ps_no_prot-master....
21
B
-rw-r--r--
query_cache_ps_no_prot.test
907
B
-rw-r--r--
query_cache_ps_ps_prot-master....
21
B
-rw-r--r--
query_cache_ps_ps_prot.test
1.18
KB
-rw-r--r--
query_cache_size_functionality...
21
B
-rw-r--r--
query_cache_size_functionality...
11.14
KB
-rw-r--r--
query_cache_type_functionality...
21
B
-rw-r--r--
query_cache_type_functionality...
11.18
KB
-rw-r--r--
query_cache_with_views-master....
21
B
-rw-r--r--
query_cache_with_views.test
4.17
KB
-rw-r--r--
range_all.test
700
B
-rw-r--r--
range_icp.test
773
B
-rw-r--r--
range_icp_mrr.test
746
B
-rw-r--r--
range_mrr.test
771
B
-rw-r--r--
range_mrr_cost.test
781
B
-rw-r--r--
range_none.test
813
B
-rw-r--r--
range_with_memory_limit.test
880
B
-rw-r--r--
read_many_rows_innodb.test
417
B
-rw-r--r--
read_only.test
12.77
KB
-rw-r--r--
read_only_innodb.test
5.5
KB
-rw-r--r--
relay_log_index_variables-mast...
86
B
-rw-r--r--
relay_log_index_variables.test
184
B
-rw-r--r--
relay_log_variables-master.opt
24
B
-rw-r--r--
relay_log_variables.test
184
B
-rw-r--r--
rename.test
2.26
KB
-rw-r--r--
renamedb.test
1.25
KB
-rw-r--r--
repair.test
5.29
KB
-rw-r--r--
replace.test
1.48
KB
-rw-r--r--
reset_connection.test
5.48
KB
-rw-r--r--
rewrite_general_log.test
5.14
KB
-rw-r--r--
rewrite_slow_log.test
4.32
KB
-rw-r--r--
rollback.test
683
B
-rw-r--r--
round.test
4.73
KB
-rw-r--r--
row.test
10.61
KB
-rw-r--r--
rowid_order_innodb.test
382
B
-rw-r--r--
rpl_connect_attr.test
2.36
KB
-rw-r--r--
rpl_multi_source_mysqldump_sla...
2.56
KB
-rw-r--r--
rpl_mysqldump_slave.test
1.06
KB
-rw-r--r--
schema.test
4.7
KB
-rw-r--r--
secure_file_priv_win-master.op...
34
B
-rw-r--r--
secure_file_priv_win.test
2.77
KB
-rw-r--r--
select_all.test
801
B
-rw-r--r--
select_all_bka.test
478
B
-rw-r--r--
select_all_bka_nixbnl.test
500
B
-rw-r--r--
select_for_update-master.opt
29
B
-rw-r--r--
select_for_update.test
996
B
-rw-r--r--
select_found.test
6.36
KB
-rw-r--r--
select_icp_mrr.test
847
B
-rw-r--r--
select_icp_mrr_bka.test
486
B
-rw-r--r--
select_icp_mrr_bka_nixbnl.test
508
B
-rw-r--r--
select_none.test
914
B
-rw-r--r--
select_none_bka.test
480
B
-rw-r--r--
select_none_bka_nixbnl.test
502
B
-rw-r--r--
select_safe.test
4.8
KB
-rw-r--r--
server_offline_1.test
2.83
KB
-rw-r--r--
server_offline_2.test
2.2
KB
-rw-r--r--
server_offline_3.test
2.33
KB
-rw-r--r--
server_offline_4.test
2.33
KB
-rw-r--r--
server_offline_5.test
2.41
KB
-rw-r--r--
server_offline_6-master.opt
18
B
-rw-r--r--
server_offline_6.test
1.68
KB
-rw-r--r--
server_uuid.test
2.53
KB
-rw-r--r--
server_uuid_embedded.test
1.34
KB
-rw-r--r--
session_tracker-master.opt
24
B
-rw-r--r--
session_tracker.test
14.72
KB
-rw-r--r--
session_tracker_trx_state-mast...
21
B
-rw-r--r--
session_tracker_trx_state.test
25.82
KB
-rw-r--r--
shm-master.opt
173
B
-rw-r--r--
shm.test
1.67
KB
-rw-r--r--
shm_server_restart-master.opt
23
B
-rw-r--r--
shm_server_restart.test
999
B
-rw-r--r--
show_check-master.opt
101
B
-rw-r--r--
show_check.test
33.97
KB
-rw-r--r--
show_processlist_state.test
208
B
-rw-r--r--
show_profile.test
496
B
-rw-r--r--
show_variables.test
367
B
-rw-r--r--
shutdown.test
1.9
KB
-rw-r--r--
signal.test
63.46
KB
-rw-r--r--
signal_code.test
1.04
KB
-rw-r--r--
signal_demo1.test
6.97
KB
-rw-r--r--
signal_demo2.test
3.34
KB
-rw-r--r--
signal_demo3-master.opt
55
B
-rw-r--r--
signal_demo3.test
2.67
KB
-rw-r--r--
signal_sqlmode.test
1.85
KB
-rw-r--r--
single_delete_update.test
13.54
KB
-rw-r--r--
skip_grants-master.opt
20
B
-rw-r--r--
skip_grants.test
2.74
KB
-rw-r--r--
skip_grants_flush-master.opt
20
B
-rw-r--r--
skip_grants_flush.test
540
B
-rw-r--r--
skip_log_bin-master.opt
21
B
-rw-r--r--
skip_log_bin.test
646
B
-rw-r--r--
skip_name_resolve-master.opt
20
B
-rw-r--r--
skip_name_resolve.test
2.77
KB
-rw-r--r--
slow_log.test
2.27
KB
-rw-r--r--
sort_buffer_size_functionality...
21
B
-rw-r--r--
sort_buffer_size_functionality...
9.56
KB
-rw-r--r--
sp-big.test
2.15
KB
-rw-r--r--
sp-bugs.test
8.47
KB
-rw-r--r--
sp-code.test
21.61
KB
-rw-r--r--
sp-destruct.test
8.12
KB
-rw-r--r--
sp-dynamic.test
9.25
KB
-rw-r--r--
sp-error.test
87.47
KB
-rw-r--r--
sp-fib-master.opt
33
B
-rw-r--r--
sp-fib.test
1.33
KB
-rw-r--r--
sp-lock-master.opt
33
B
-rw-r--r--
sp-lock.test
31.39
KB
-rw-r--r--
sp-master.opt
54
B
-rw-r--r--
sp-no-code.test
216
B
-rw-r--r--
sp-prelocking-master.opt
33
B
-rw-r--r--
sp-prelocking.test
8.43
KB
-rw-r--r--
sp-security.test
25.43
KB
-rw-r--r--
sp-threads.test
4
KB
-rw-r--r--
sp-ucs2.test
3.38
KB
-rw-r--r--
sp-vars.test
28.72
KB
-rw-r--r--
sp.test
196.05
KB
-rw-r--r--
sp_debug.test
1.03
KB
-rw-r--r--
sp_gis.test
923
B
-rw-r--r--
sp_notembedded-master.opt
21
B
-rw-r--r--
sp_notembedded.test
17.08
KB
-rw-r--r--
sp_stress_case.test
2.07
KB
-rw-r--r--
sp_sync.test
4.88
KB
-rw-r--r--
sp_trans.test
17.11
KB
-rw-r--r--
sp_trans_log.test
1.35
KB
-rw-r--r--
sp_validation.test
40.19
KB
-rw-r--r--
sql_mode.test
16.94
KB
-rw-r--r--
sql_mode_default.test
3.14
KB
-rw-r--r--
ssl-big.test
1.68
KB
-rw-r--r--
ssl-sha512-master.opt
196
B
-rw-r--r--
ssl-sha512.test
432
B
-rw-r--r--
ssl.test
1.77
KB
-rw-r--r--
ssl_8k_key-master.opt
118
B
-rw-r--r--
ssl_8k_key.test
560
B
-rw-r--r--
ssl_and_innodb.test
261
B
-rw-r--r--
ssl_ca-master.opt
160
B
-rw-r--r--
ssl_ca.test
2.07
KB
-rw-r--r--
ssl_cipher-master.opt
32
B
-rw-r--r--
ssl_cipher.test
933
B
-rw-r--r--
ssl_compress.test
1.24
KB
-rw-r--r--
ssl_connect.test
368
B
-rw-r--r--
ssl_crl-master.opt
218
B
-rw-r--r--
ssl_crl.test
2.73
KB
-rw-r--r--
ssl_crl_clients-master.opt
234
B
-rw-r--r--
ssl_crl_clients.test
1.9
KB
-rw-r--r--
ssl_crl_clients_valid-master.o...
218
B
-rw-r--r--
ssl_crl_clients_valid.test
1.24
KB
-rw-r--r--
ssl_crl_crlpath-master.opt
206
B
-rw-r--r--
ssl_crl_crlpath.test
1.46
KB
-rw-r--r--
ssl_deprecated_tls_versions-ma...
28
B
-rw-r--r--
ssl_deprecated_tls_versions.te...
1.31
KB
-rw-r--r--
ssl_verify_identity-master.opt
181
B
-rw-r--r--
ssl_verify_identity.test
4.66
KB
-rw-r--r--
status-master.opt
76
B
-rw-r--r--
status.test
15
KB
-rw-r--r--
status2.test
1.54
KB
-rw-r--r--
status_bug17954.test
1.74
KB
-rw-r--r--
status_debug.test
3.7
KB
-rw-r--r--
strict-master.opt
32
B
-rw-r--r--
strict.test
49.24
KB
-rw-r--r--
strict_autoinc_1myisam.test
283
B
-rw-r--r--
strict_autoinc_2innodb.test
152
B
-rw-r--r--
strict_autoinc_3heap.test
227
B
-rw-r--r--
subquery_all.test
751
B
-rw-r--r--
subquery_all_bka.test
383
B
-rw-r--r--
subquery_all_bka_nixbnl.test
405
B
-rw-r--r--
subquery_bugs.test
1.7
KB
-rw-r--r--
subquery_mat.test
862
B
-rw-r--r--
subquery_mat_all.test
770
B
-rw-r--r--
subquery_mat_none.test
827
B
-rw-r--r--
subquery_nomat_nosj.test
774
B
-rw-r--r--
subquery_nomat_nosj_bka.test
397
B
-rw-r--r--
subquery_nomat_nosj_bka_nixbnl...
419
B
-rw-r--r--
subquery_none.test
819
B
-rw-r--r--
subquery_none_bka.test
385
B
-rw-r--r--
subquery_none_bka_nixbnl.test
407
B
-rw-r--r--
subquery_sj_all-master.opt
22
B
-rw-r--r--
subquery_sj_all.test
712
B
-rw-r--r--
subquery_sj_all_bka-master.opt
22
B
-rw-r--r--
subquery_sj_all_bka.test
389
B
-rw-r--r--
subquery_sj_all_bka_nixbnl-mas...
22
B
-rw-r--r--
subquery_sj_all_bka_nixbnl.tes...
411
B
-rw-r--r--
subquery_sj_all_bkaunique-mast...
22
B
-rw-r--r--
subquery_sj_all_bkaunique.test
530
B
-rw-r--r--
subquery_sj_dupsweed-master.op...
22
B
-rw-r--r--
subquery_sj_dupsweed.test
1019
B
-rw-r--r--
subquery_sj_dupsweed_bka-maste...
22
B
-rw-r--r--
subquery_sj_dupsweed_bka.test
399
B
-rw-r--r--
subquery_sj_dupsweed_bka_nixbn...
22
B
-rw-r--r--
subquery_sj_dupsweed_bka_nixbn...
421
B
-rw-r--r--
subquery_sj_dupsweed_bkaunique...
22
B
-rw-r--r--
subquery_sj_dupsweed_bkaunique...
517
B
-rw-r--r--
subquery_sj_firstmatch-master....
22
B
-rw-r--r--
subquery_sj_firstmatch.test
2.67
KB
-rw-r--r--
subquery_sj_firstmatch_bka-mas...
22
B
-rw-r--r--
subquery_sj_firstmatch_bka.tes...
403
B
-rw-r--r--
subquery_sj_firstmatch_bka_nix...
425
B
-rw-r--r--
subquery_sj_firstmatch_bkauniq...
476
B
-rw-r--r--
subquery_sj_innodb_all.test
550
B
-rw-r--r--
subquery_sj_innodb_all_bka.tes...
194
B
-rw-r--r--
subquery_sj_innodb_all_bka_nix...
216
B
-rw-r--r--
subquery_sj_innodb_all_bkauniq...
476
B
-rw-r--r--
subquery_sj_innodb_none.test
663
B
-rw-r--r--
subquery_sj_innodb_none_bka.te...
196
B
-rw-r--r--
subquery_sj_innodb_none_bka_ni...
218
B
-rw-r--r--
subquery_sj_innodb_none_bkauni...
478
B
-rw-r--r--
subquery_sj_loosescan.test
1.05
KB
-rw-r--r--
subquery_sj_loosescan_bka.test
401
B
-rw-r--r--
subquery_sj_loosescan_bka_nixb...
423
B
-rw-r--r--
subquery_sj_loosescan_bkauniqu...
519
B
-rw-r--r--
subquery_sj_mat.test
1.06
KB
-rw-r--r--
subquery_sj_mat_bka.test
389
B
-rw-r--r--
subquery_sj_mat_bka_nixbnl.tes...
411
B
-rw-r--r--
subquery_sj_mat_bkaunique.test
507
B
-rw-r--r--
subquery_sj_mat_nosj.test
805
B
-rw-r--r--
subquery_sj_none.test
825
B
-rw-r--r--
subquery_sj_none_bka.test
391
B
-rw-r--r--
subquery_sj_none_bka_nixbnl.te...
413
B
-rw-r--r--
subquery_sj_none_bkaunique.tes...
509
B
-rw-r--r--
subselect_debug.test
977
B
-rw-r--r--
subselect_gis.test
589
B
-rw-r--r--
subselect_innodb.test
24.42
KB
-rw-r--r--
subselect_notembedded-master.o...
33
B
-rw-r--r--
subselect_notembedded.test
1.73
KB
-rw-r--r--
sum_distinct-big.test
2.21
KB
-rw-r--r--
sum_distinct.test
3.43
KB
-rw-r--r--
symlink.test
9.82
KB
-rw-r--r--
synchronization.test
1.14
KB
-rw-r--r--
sysdate_is_now-master.opt
17
B
-rw-r--r--
sysdate_is_now.test
298
B
-rw-r--r--
system_mysql_db.test
311
B
-rw-r--r--
system_mysql_db_fix30020-maste...
30
B
-rw-r--r--
system_mysql_db_fix40123-maste...
30
B
-rw-r--r--
system_mysql_db_fix40123.test
9.84
KB
-rw-r--r--
system_mysql_db_fix50030-maste...
30
B
-rw-r--r--
system_mysql_db_fix50030.test
14.34
KB
-rw-r--r--
system_mysql_db_fix50117-maste...
30
B
-rw-r--r--
system_mysql_db_fix50117.test
15.1
KB
-rw-r--r--
system_mysql_db_refs.test
3.35
KB
-rw-r--r--
table_definition_cache_functio...
8.84
KB
-rw-r--r--
table_open_cache_functionality...
52
B
-rw-r--r--
table_open_cache_functionality...
13.44
KB
-rw-r--r--
tablelock.test
1.37
KB
-rw-r--r--
tablespace.test
5.76
KB
-rw-r--r--
temp_pool-master.opt
31
B
-rw-r--r--
temp_pool.test
1.44
KB
-rw-r--r--
temp_table-master.opt
32
B
-rw-r--r--
temp_table.test
8.48
KB
-rw-r--r--
temporal_literal.test
6.77
KB
-rw-r--r--
test_security_context-master.o...
27
B
-rw-r--r--
test_security_context.test
1.11
KB
-rw-r--r--
timezone-master.opt
15
B
-rw-r--r--
timezone.test
2.37
KB
-rw-r--r--
timezone2.test
11.04
KB
-rw-r--r--
timezone3-master.opt
49
B
-rw-r--r--
timezone3.test
2.74
KB
-rw-r--r--
timezone4-master.opt
18
B
-rw-r--r--
timezone4.test
311
B
-rw-r--r--
timezone_debug.test
1.13
KB
-rw-r--r--
timezone_grant.test
4.64
KB
-rw-r--r--
trans_read_only-master.opt
29
B
-rw-r--r--
trans_read_only.test
1.05
KB
-rw-r--r--
transaction_isolation-master.o...
37
B
-rw-r--r--
transaction_isolation.test
1.57
KB
-rw-r--r--
transaction_read_only-master.o...
24
B
-rw-r--r--
transaction_read_only.test
1.88
KB
-rw-r--r--
trigger-compat.test
8.46
KB
-rw-r--r--
trigger-trans.test
6.78
KB
-rw-r--r--
trigger.test
85.5
KB
-rw-r--r--
trigger_debug.test
538
B
-rw-r--r--
trigger_notembedded.test
26.82
KB
-rw-r--r--
trigger_wl3253.test
12.35
KB
-rw-r--r--
trigger_wl6030.test
42.25
KB
-rw-r--r--
truncate.test
3.36
KB
-rw-r--r--
truncate_coverage.test
5.79
KB
-rw-r--r--
type_binary.test
6.09
KB
-rw-r--r--
type_bit.test
13.4
KB
-rw-r--r--
type_bit_innodb.test
4.54
KB
-rw-r--r--
type_blob.test
31.16
KB
-rw-r--r--
type_date.test
14.53
KB
-rw-r--r--
type_datetime.test
21.85
KB
-rw-r--r--
type_decimal.test
29.97
KB
-rw-r--r--
type_enum.test
90.04
KB
-rw-r--r--
type_float.test
9.8
KB
-rw-r--r--
type_nchar.test
1.4
KB
-rw-r--r--
type_newdecimal-big.test
1.16
KB
-rw-r--r--
type_newdecimal.test
45.73
KB
-rw-r--r--
type_ranges.test
9.2
KB
-rw-r--r--
type_set.test
4.29
KB
-rw-r--r--
type_string-master.opt
10
B
-rw-r--r--
type_string.test
531
B
-rw-r--r--
type_temporal_fractional.test
289.34
KB
-rw-r--r--
type_temporal_upgrade.test
5.25
KB
-rw-r--r--
type_time.test
11.67
KB
-rw-r--r--
type_timestamp-master.opt
36
B
-rw-r--r--
type_timestamp.test
19.19
KB
-rw-r--r--
type_timestamp_explicit-master...
34
B
-rw-r--r--
type_timestamp_explicit.test
4.21
KB
-rw-r--r--
type_uint.test
309
B
-rw-r--r--
type_varchar.test
6.83
KB
-rw-r--r--
type_year.test
5.18
KB
-rw-r--r--
udf-master.opt
42
B
-rw-r--r--
udf.test
16.26
KB
-rw-r--r--
udf_services-master.opt
21
B
-rw-r--r--
udf_services.test
765
B
-rw-r--r--
udf_skip_grants-master.opt
41
B
-rw-r--r--
udf_skip_grants.test
1.45
KB
-rw-r--r--
union-master.opt
49
B
-rw-r--r--
union.test
62.39
KB
-rw-r--r--
unsafe_binlog_innodb-master.op...
67
B
-rw-r--r--
unsafe_binlog_innodb.test
432
B
-rw-r--r--
update.test
20.23
KB
-rw-r--r--
upgrade.test
5.3
KB
-rw-r--r--
user_if_exists.test
8.02
KB
-rw-r--r--
user_limits-master.opt
21
B
-rw-r--r--
user_limits.test
6.97
KB
-rw-r--r--
user_lock.test
22.39
KB
-rw-r--r--
user_var-binlog.test
1.04
KB
-rw-r--r--
user_var.test
14.42
KB
-rw-r--r--
utility_warnings-master.opt
147
B
-rw-r--r--
utility_warnings.test
17.92
KB
-rw-r--r--
validate_password_plugin-maste...
23
B
-rw-r--r--
validate_password_plugin.test
10.41
KB
-rw-r--r--
validate_password_plugin_check...
47
B
-rw-r--r--
validate_password_plugin_check...
3.75
KB
-rw-r--r--
varbinary.test
7.71
KB
-rw-r--r--
variables-big.test
2.13
KB
-rw-r--r--
variables-master.opt
21
B
-rw-r--r--
variables-notembedded-master.o...
47
B
-rw-r--r--
variables-notembedded.test
11.21
KB
-rw-r--r--
variables-win.test
393
B
-rw-r--r--
variables.test
50.07
KB
-rw-r--r--
variables_community.test
242
B
-rw-r--r--
variables_debug.test
2.96
KB
-rw-r--r--
version_token-master.opt
19
B
-rw-r--r--
version_token.test
10.36
KB
-rw-r--r--
version_token_bug21280801-mast...
19
B
-rw-r--r--
version_token_bug21280801.test
3.23
KB
-rw-r--r--
version_token_errors-master.op...
19
B
-rw-r--r--
version_token_errors.test
2.3
KB
-rw-r--r--
view.test
137.35
KB
-rw-r--r--
view_alias.test
4.03
KB
-rw-r--r--
view_grant.test
93.83
KB
-rw-r--r--
view_gtid_mode_on_debug-master...
66
B
-rw-r--r--
view_gtid_mode_on_debug.test
3.48
KB
-rw-r--r--
wait_timeout.test
5.31
KB
-rw-r--r--
warnings-master.opt
14
B
-rw-r--r--
warnings.test
5.95
KB
-rw-r--r--
warnings_engine_disabled.test
763
B
-rw-r--r--
windows.test
2.45
KB
-rw-r--r--
wl3836.test
3.92
KB
-rw-r--r--
wl4435_generated.inc
10.43
KB
-rw-r--r--
wl5928.test
15.04
KB
-rw-r--r--
wl6219-csv.test
109
B
-rw-r--r--
wl6219-innodb.test
322
B
-rw-r--r--
wl6219-memory.test
112
B
-rw-r--r--
wl6219-merge.test
111
B
-rw-r--r--
wl6219-myisam.test
424
B
-rw-r--r--
wl6219-upgrade.test
5.39
KB
-rw-r--r--
wl6301_1_not_windows-master.op...
20
B
-rw-r--r--
wl6301_1_not_windows.test
456
B
-rw-r--r--
wl6301_2_not_windows-master.op...
43
B
-rw-r--r--
wl6301_2_not_windows.test
494
B
-rw-r--r--
wl6301_3-master.opt
52
B
-rw-r--r--
wl6301_3.test
904
B
-rw-r--r--
wl6443_deprecation-master.opt
23
B
-rw-r--r--
wl6443_deprecation.test
4.18
KB
-rw-r--r--
wl6661-master.opt
209
B
-rw-r--r--
wl6661.test
6.92
KB
-rw-r--r--
wl6711_heap_to_disk.test
4.21
KB
-rw-r--r--
wl6978.test
478
B
-rw-r--r--
xa.test
14.62
KB
-rw-r--r--
xa_deadlock_binlog.test
2.26
KB
-rw-r--r--
xa_debug.test
5.47
KB
-rw-r--r--
xa_gtid-master.opt
55
B
-rw-r--r--
xa_gtid.test
917
B
-rw-r--r--
xa_prepared_binlog_off-master....
15
B
-rw-r--r--
xa_prepared_binlog_off.test
527
B
-rw-r--r--
xml.test
24.95
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : lock_multi.test
# This tests Bug#16986 Deadlock condition with MyISAM tables # All tests are required to run with Myisam. # Hence MTR starts mysqld with MyISAM as default --source include/force_myisam_default.inc --source include/have_myisam.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc --disable_warnings drop table if exists t1,t2; --enable_warnings # Test to see if select will get the lock ahead of low priority update connect (locker,localhost,root,,); connect (locker2,localhost,root,,); connect (reader,localhost,root,,); connect (writer,localhost,root,,); connection locker; create table t1(n int); insert into t1 values (1); connection locker2; select get_lock("mysqltest_lock", 100); connection locker; send update t1 set n = 2 and get_lock('mysqltest_lock', 100); connection writer; # Wait till above update gets blocked on a user lock. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "update t1 set n = 2 and get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc send update low_priority t1 set n = 4; connection reader; # Sleep a bit till the update of connection writer is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "update low_priority t1 set n = 4"; --source include/wait_condition.inc send select n from t1; connection locker2; # Sleep a bit till the select of connection reader is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "select n from t1"; --source include/wait_condition.inc select release_lock("mysqltest_lock"); connection locker; reap; select release_lock("mysqltest_lock"); connection writer; reap; connection reader; reap; drop table t1; connection locker; create table t1(n int); insert into t1 values (1); connection locker2; select get_lock("mysqltest_lock", 100); connection locker; send select n from t1 where get_lock('mysqltest_lock', 100); connection writer; # Wait till above select gets blocked on a user lock. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "select n from t1 where get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc send update low_priority t1 set n = 4; connection reader; # Sleep a bit till the update of connection writer is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "update low_priority t1 set n = 4"; --source include/wait_condition.inc select n from t1; connection locker2; select release_lock("mysqltest_lock"); connection locker; reap; select release_lock("mysqltest_lock"); connection writer; reap; drop table t1; --echo # --echo # Test locking in multi-update statements. --echo # --echo # --echo # Multi-update should not be blocked by THR_LOCK locks acquired --echo # on table which is not updated. --echo # --enable_connect_log connection locker; create table t1 (a int, b int); create table t2 (c int, d int); insert into t1 values(1,1); insert into t1 values(2,2); insert into t2 values(1,2); connection locker2; select get_lock("mysqltest_lock", 100); connection locker; --echo # Sending: --send select a from t1 where get_lock('mysqltest_lock', 100) connection writer; --echo # Wait till above select gets blocked on a user lock. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "select a from t1 where get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc update t1,t2 set c=a where b=d; connection reader; select c from t2; connection locker2; select release_lock("mysqltest_lock"); connection locker; --echo # Reap select. --reap select release_lock("mysqltest_lock"); --echo # --echo # Indeed it should be blocked by THR_LOCK locks on table --echo # which is updated. --echo # connection locker2; select get_lock("mysqltest_lock", 100); connection locker; --echo # Sending: --send select c from t2 where get_lock('mysqltest_lock', 100) connection writer; --echo # Wait till above select gets blocked on a user lock. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "select c from t2 where get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc --echo # Sending: --send update t1,t2 set c=a where b=d; connection default; --echo # Wait till multi-update is blocked on THR_LOCK lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "update t1,t2 set c=a where b=d"; connection locker2; select release_lock("mysqltest_lock"); connection locker; --echo # Reap select. --reap select release_lock("mysqltest_lock"); connection writer; --echo # Reap multi-update. --reap --echo # --echo # OTOH multi-update will be blocked by concurrent LOCK TABLES READ --echo # on any table in the join. This is because multi-update acquires --echo # SW metadata locks on all tables in the join which conflicts with --echo # SRO metadata lock acquired by LOCK TABLES READ. --echo # connection locker; lock table t1 read; connection writer; --echo # Sending: --send update t1,t2 set c=a where b=d; connection default; --echo # Wait till multi-update is blocked on THR_LOCK lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "update t1,t2 set c=a where b=d"; connection locker; unlock tables; connection writer; --echo # Reap multi-update. --reap connection locker; lock table t2 read; connection writer; --echo # Sending: --send update t1,t2 set c=a where b=d; connection default; --echo # Wait till multi-update is blocked on THR_LOCK lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "update t1,t2 set c=a where b=d"; connection locker; unlock tables; connection writer; --echo # Reap multi-update. --reap --echo # --echo # Still if multi-update is executed under LOCK TABLES --echo # it will be compatible with LOCK TABLES READ on the --echo # table from its join which is only read. --echo # --echo # Main difference here is that LOCK TABLES preannounces --echo # locks which will be requested by multi-update. --echo # connection locker; lock table t1 read; connection writer; lock tables t1 read, t2 write; update t1,t2 set c=a where b=d; unlock tables; connection locker; unlock tables; connection default; drop table t1; drop table t2; --disable_connect_log # # Test problem when using locks on many tables and dropping a table that # is to-be-locked by another thread # # connection locker; create table t1 (a int); create table t2 (a int); lock table t1 write, t2 write; connection reader; send insert t1 select * from t2; connection locker; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "insert t1 select * from t2"; --source include/wait_condition.inc drop table t2; unlock tables; connection reader; --error ER_NO_SUCH_TABLE reap; connection locker; drop table t1; # # Same test as above, but with the dropped table locked twice # connection locker; create table t1 (a int); create table t2 (a int); lock table t1 write, t2 write, t1 as t1_2 write, t2 as t2_2 write; connection reader; send insert t1 select * from t2; connection locker; # Sleep a bit till the insert of connection reader is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "insert t1 select * from t2"; --source include/wait_condition.inc drop table t2; unlock tables; connection reader; --error ER_NO_SUCH_TABLE reap; connection locker; drop table t1; --echo End of 4.1 tests # # Bug#9998 MySQL client hangs on USE "database" # create table t1(a int); lock tables t1 write; connection reader; show columns from t1; connection locker; unlock tables; drop table t1; # # Bug#16986 Deadlock condition with MyISAM tables # # Need a matching user in mysql.user for multi-table select --source include/add_anonymous_users.inc connection locker; USE mysql; LOCK TABLES columns_priv WRITE, db WRITE, user WRITE; FLUSH TABLES; # connection reader; USE mysql; # Note: This must be a multi-table select, otherwise the deadlock will not occur send SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1; # connection locker; # Sleep a bit till the select of connection reader is in work and hangs let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE state = "Waiting for table metadata lock" AND info = "SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1"; --source include/wait_condition.inc # Make test case independent from earlier grants. --replace_result "Table is already up to date" "OK" OPTIMIZE TABLES columns_priv, db, user; UNLOCK TABLES; # connection reader; reap; USE test; # connection locker; use test; # connection default; # # Test if CREATE TABLE with LOCK TABLE deadlocks. # connection writer; CREATE TABLE t1 (c1 int); LOCK TABLE t1 WRITE; # # This waits until t1 is unlocked. connection locker; send FLUSH TABLES WITH READ LOCK; # connection writer; # Sleep a bit till the flush of connection locker is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "FLUSH TABLES WITH READ LOCK"; --source include/wait_condition.inc # This must not block. --error ER_TABLE_NOT_LOCKED CREATE TABLE t2 (c1 int); UNLOCK TABLES; # # This awakes now. connection locker; reap; UNLOCK TABLES; # connection default; DROP TABLE t1; # # Test if CREATE TABLE SELECT with LOCK TABLE deadlocks. # connection writer; CREATE TABLE t1 (c1 int); LOCK TABLE t1 WRITE; # # This waits until t1 is unlocked. connection locker; send FLUSH TABLES WITH READ LOCK; # # This must not block. connection writer; # Sleep a bit till the flush of connection locker is in work and hangs let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "FLUSH TABLES WITH READ LOCK"; --source include/wait_condition.inc --error ER_TABLE_NOT_LOCKED CREATE TABLE t2 AS SELECT * FROM t1; UNLOCK TABLES; # # This awakes now. connection locker; reap; UNLOCK TABLES; # connection default; DROP TABLE t1; --source include/delete_anonymous_users.inc # # Bug#19815 CREATE/RENAME/DROP DATABASE can deadlock on a global read lock # connect (con1,localhost,root,,); connect (con2,localhost,root,,); # connection con1; CREATE DATABASE mysqltest_1; FLUSH TABLES WITH READ LOCK; # # With bug in place: acquire LOCK_mysql_create_table and # wait in wait_if_global_read_lock(). connection con2; send DROP DATABASE mysqltest_1; # # With bug in place: try to acquire LOCK_mysql_create_table... # When fixed: Reject dropping db because of the read lock. connection con1; # Wait a bit so that the session con2 is in state # "Waiting for global read lock" let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "DROP DATABASE mysqltest_1"; --source include/wait_condition.inc --error ER_CANT_UPDATE_WITH_READLOCK DROP DATABASE mysqltest_1; UNLOCK TABLES; # connection con2; reap; # connection default; disconnect con1; disconnect con2; # This must have been dropped by connection 2 already, # which waited until the global read lock was released. --error ER_DB_DROP_EXISTS DROP DATABASE mysqltest_1; # # Bug#17264 MySQL Server freeze # connection locker; # Disable warnings to allow test to run also without InnoDB --disable_warnings create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb; --enable_warnings lock tables t1 write; connection writer; send alter table t1 auto_increment=0; connection reader; # Wait till connection writer is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 auto_increment=0"; --source include/wait_condition.inc send alter table t1 auto_increment=0; connection locker; # Wait till connection reader is blocked let $wait_condition= select count(*) = 2 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 auto_increment=0"; --source include/wait_condition.inc unlock tables; connection writer; reap; connection reader; reap; connection locker; drop table t1; # # Bug#43230: SELECT ... FOR UPDATE can hang with FLUSH TABLES WITH READ LOCK indefinitely # connect (con1,localhost,root,,); connect (con2,localhost,root,,); connect (con3,localhost,root,,); connect (con4,localhost,root,,); connect (con5,localhost,root,,); create table t1 (a int); create table t2 like t1; connection con1; --echo # con1 lock tables t1 write; connection con2; --echo # con2 send flush tables with read lock; connection con5; --echo # con5 let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "flush tables with read lock"; --source include/wait_condition.inc --echo # global read lock is taken connection con3; --echo # con3 send select * from t2 for update; connection con5; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "select * from t2 for update"; --source include/wait_condition.inc --echo # waiting for release of read lock connection con4; --echo # con4 --echo # would hang and later cause a deadlock flush tables t2; connection con1; --echo # clean up unlock tables; connection con2; --reap unlock tables; connection con3; --reap connection default; disconnect con5; disconnect con4; disconnect con3; disconnect con2; disconnect con1; drop table t1,t2; --echo # --echo # Lightweight version: --echo # Ensure that the wait for a GRL is done before opening tables. --echo # connect (con1,localhost,root,,); connect (con2,localhost,root,,); create table t1 (a int); create table t2 like t1; --echo # --echo # UPDATE --echo # connection default; --echo # default flush tables with read lock; connection con1; --echo # con1 send update t2 set a = 1; connection default; --echo # default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "update t2 set a = 1"; --source include/wait_condition.inc --echo # statement is waiting for release of read lock connection con2; --echo # con2 flush table t2; connection default; --echo # default unlock tables; connection con1; --echo # con1 --reap --echo # --echo # LOCK TABLES .. WRITE --echo # connection default; --echo # default flush tables with read lock; connection con1; --echo # con1 send lock tables t2 write; connection default; --echo # default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "lock tables t2 write"; --source include/wait_condition.inc --echo # statement is waiting for release of read lock connection con2; --echo # con2 flush table t2; connection default; --echo # default unlock tables; connection con1; --echo # con1 --reap unlock tables; connection default; disconnect con2; disconnect con1; drop table t1,t2; --echo End of 5.0 tests # # Bug#21281 Pending write lock is incorrectly removed when its # statement being KILLed # create table t1 (i int); insert into t1 values (1); select get_lock('mysqltest_lock', 100); connection locker; send select * from t1 where get_lock('mysqltest_lock', 100); connection writer; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "select * from t1 where get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc send update t1 set i= 10; connection reader; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "update t1 set i= 10"; --source include/wait_condition.inc send select * from t1; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "select * from t1"; --source include/wait_condition.inc let $ID= `select id from information_schema.processlist where state = "Waiting for table level lock" and info = "update t1 set i= 10"`; --replace_result $ID ID eval kill query $ID; connection reader; --reap connection writer; --error ER_QUERY_INTERRUPTED --reap connection default; select release_lock('mysqltest_lock'); connection locker; --reap select release_lock('mysqltest_lock'); connection default; drop table t1; # # Bug#25856 HANDLER table OPEN in one connection lock DROP TABLE in another one # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (a int) ENGINE=MEMORY; --echo --> client 2 connection locker; --error ER_ILLEGAL_HA handler t1 open; --echo --> client 1 connection default; drop table t1; # Disconnect sessions used in many subtests above disconnect locker; disconnect locker2; disconnect reader; disconnect writer; # # Bug#32395 Alter table under a impending global read lock causes a server crash # # # Test ALTER TABLE under LOCK TABLES and FLUSH TABLES WITH READ LOCK # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; --echo connection: default lock tables t1 write; connection flush; --echo connection: flush --send flush tables with read lock; connection default; --echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "flush tables with read lock"; --source include/wait_condition.inc alter table t1 add column j int; connect (insert,localhost,root,,test,,); connection insert; --echo connection: insert let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "flush tables with read lock"; --source include/wait_condition.inc --send insert into t1 values (1,2); --echo connection: default connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "insert into t1 values (1,2)"; --source include/wait_condition.inc unlock tables; connection flush; --echo connection: flush --reap let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "insert into t1 values (1,2)"; --source include/wait_condition.inc select * from t1; unlock tables; connection insert; --reap connection default; let $wait_condition= select count(*) = 1 from t1; --source include/wait_condition.inc select * from t1; drop table t1; disconnect flush; disconnect insert; # # Test that FLUSH TABLES under LOCK TABLES protects write locked tables # from a impending FLUSH TABLES WITH READ LOCK # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; --echo connection: default lock tables t1 write; connection flush; --echo connection: flush --send flush tables with read lock; connection default; --echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; --source include/wait_condition.inc flush tables; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; --source include/wait_condition.inc unlock tables; connection flush; --reap connection default; disconnect flush; drop table t1; # # Bug#30331 Table_locks_waited shows inaccurate values # --disable_warnings drop table if exists t1,t2; --enable_warnings create table t1 (a int); insert into t1 values (1); connect (blocker,localhost,root,,); connection blocker; select get_lock('mysqltest_lock', 100); connection default; flush status; send select * from t1 where get_lock('mysqltest_lock', 100); connect (waiter,localhost,root,,); connection waiter; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "select * from t1 where get_lock('mysqltest_lock', 100)"; --source include/wait_condition.inc let $tlwa= `show status like 'Table_locks_waited'`; send update t1 set a= 2; connection blocker; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "update t1 set a= 2"; --source include/wait_condition.inc let $tlwb= `show status like 'Table_locks_waited'`; select release_lock('mysqltest_lock'); connection waiter; --reap connection default; --reap select release_lock('mysqltest_lock'); drop table t1; disconnect blocker; disconnect waiter; --disable_query_log eval SET @tlwa= SUBSTRING_INDEX('$tlwa', ' ', -1); eval SET @tlwb= SUBSTRING_INDEX('$tlwb', ' ', -1); --enable_query_log select @tlwa < @tlwb; --echo End of 5.1 tests # # Test that DROP TABLES does not wait for a impending FLUSH TABLES # WITH READ LOCK # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; --echo connection: default lock tables t1 write; connection flush; --echo connection: flush --send flush tables with read lock; connection default; --echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; --source include/wait_condition.inc flush tables; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; --source include/wait_condition.inc drop table t1; connection flush; --reap connection default; disconnect flush; --echo # --echo # Test for bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock". --echo # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (c1 int primary key, c2 int, c3 int); insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0); begin; update t1 set c3=c3+1 where c2=3; --echo # --echo # Switching to connection 'con46272'. connect (con46272,localhost,root,,test,,); connection con46272; --echo # The below ALTER TABLE statement should wait till transaction --echo # in connection 'default' is complete and then succeed. --echo # It should not deadlock or fail with ER_LOCK_DEADLOCK error. --echo # Sending: --send alter table t1 add column c4 int; --echo # --echo # Switching to connection 'default'. connection default; --echo # Wait until the above ALTER TABLE gets blocked because this --echo # connection holds SW metadata lock on table to be altered. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 add column c4 int"; --source include/wait_condition.inc --echo # The below statement should succeed. It should not --echo # deadlock or end with ER_LOCK_DEADLOCK error. update t1 set c3=c3+1 where c2=4; --echo # Unblock ALTER TABLE by committing transaction. commit; --echo # --echo # Switching to connection 'con46272'. connection con46272; --echo # Reaping ALTER TABLE. --reap --echo # --echo # Switching to connection 'default'. connection default; disconnect con46272; drop table t1; --echo # --echo # Bug#47249 assert in MDL_global_lock::is_lock_type_compatible --echo # --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; --enable_warnings --echo # --echo # Test 1: LOCK TABLES v1 WRITE, t1 READ; --echo # --echo # Thanks to the fact that we no longer allow DDL on tables --echo # which are locked for write implicitly, the exact scenario --echo # in which assert was failing is no longer repeatable. CREATE TABLE t1 ( f1 integer ); CREATE VIEW v1 AS SELECT f1 FROM t1 ; --echo # Connection 2 connect (con2,localhost,root); LOCK TABLES v1 WRITE, t1 READ; FLUSH TABLE t1; disconnect con2; --source include/wait_until_disconnected.inc --echo # Connection 1 connection default; LOCK TABLES t1 WRITE; FLUSH TABLE t1; # Assertion happened here UNLOCK TABLES; # Cleanup DROP TABLE t1; DROP VIEW v1; --echo # --echo # Test 2: LOCK TABLES t1 WRITE, v1 READ; --echo # CREATE TABLE t1 ( f1 integer ); CREATE VIEW v1 AS SELECT f1 FROM t1 ; --echo # Connection 2 connect (con2,localhost,root); LOCK TABLES t1 WRITE, v1 READ; FLUSH TABLE t1; disconnect con2; --source include/wait_until_disconnected.inc --echo # Connection 1 connection default; LOCK TABLES t1 WRITE; FLUSH TABLE t1; # Assertion happened here # Cleanup DROP TABLE t1; DROP VIEW v1; --echo # --echo # Test for bug #50913 "Deadlock between open_and_lock_tables_derived --echo # and MDL". Also see additional coverage in mdl_sync.test. --echo # --disable_warnings drop table if exists t1; drop view if exists v1; --enable_warnings connect (con50913,localhost,root); connection default; create table t1 (i int); create view v1 as select i from t1; begin; select * from t1; --echo # Switching to connection 'con50913'. connection con50913; --echo # Sending: --send alter table t1 add column j int --echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE gets blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 add column j int"; --source include/wait_condition.inc --echo # The below statement should try to acquire SW lock on 't1' --echo # and therefore should get ER_LOCK_DEADLOCK error. Before --echo # bug fix it acquired SR lock and hung on thr_lock.c lock. --error ER_LOCK_DEADLOCK delete a from t1 as a where i = 1; --echo # Unblock ALTER TABLE. commit; --echo # Switching to connection 'con50913'. connection con50913; --echo # Reaping ALTER TABLE; --reap --echo # Switching to connection 'default'. connection default; begin; select * from v1; --echo # Switching to connection 'con50913'. connection con50913; --echo # Sending: --send alter table t1 drop column j --echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE gets blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "alter table t1 drop column j"; --source include/wait_condition.inc --echo # The below statement should try to acquire SW lock on 't1' --echo # and therefore should get ER_LOCK_DEADLOCK error. Before --echo # bug fix it acquired SR lock and hung on thr_lock.c lock. --error ER_LOCK_DEADLOCK insert into v1 values (1); --echo # Unblock ALTER TABLE. commit; --echo # Switching to connection 'con50913'. connection con50913; --echo # Reaping ALTER TABLE; --reap --echo # Switching to connection 'default'. connection default; disconnect con50913; drop view v1; drop table t1; --echo # --echo # Bug#45225 Locking: hang if drop table with no timeout --echo # --echo # These tests also provide function coverage for the --echo # lock_wait_timeout server variable. --echo # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (id int); connect(con2, localhost, root,,); SET SESSION lock_wait_timeout= 1; --echo # --echo # Test 1: acquire exclusive lock --echo # --echo # Connection default connection default; START TRANSACTION; INSERT INTO t1 VALUES (1); --echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT DROP TABLE t1; --echo # Connection default connection default; COMMIT; --echo # --echo # Test 2: upgrade shared lock --echo # --echo # Connection default connection default; START TRANSACTION; SELECT * FROM t1; --echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT ALTER TABLE t1 RENAME TO t2; --echo # Connection default connection default; COMMIT; --echo # --echo # Test 3: acquire shared lock --echo # --echo # Connection default connection default; LOCK TABLE t1 WRITE; --echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT INSERT INTO t1(id) VALUES (2); --echo # Connection default connection default; UNLOCK TABLES; --echo # --echo # Test 4: table level locks --echo # --echo # Connection default connection default; LOCK TABLE t1 READ; --echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT INSERT INTO t1(id) VALUES(4); --echo # Connection default connection default; UNLOCK TABLES; --echo # --echo # Test 5: Waiting on Table Definition Cache (TDC) --echo # connect(con3, localhost, root); --echo # Connection default connection default; LOCK TABLE t1 READ; --echo # Connection con3 connection con3; --echo # Sending: --send FLUSH TABLES --echo # Connection con2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE state = "Waiting for table flush" AND info = "FLUSH TABLES"; --source include/wait_condition.inc --error ER_LOCK_WAIT_TIMEOUT SELECT * FROM t1; --echo # Connection default connection default; UNLOCK TABLES; --echo # Connection con3 connection con3; --echo # Reaping: FLUSH TABLES --reap --echo # --echo # Test 6: Timeouts in I_S queries --echo # --echo # Connection default connection default; CREATE TABLE t2 (id INT); LOCK TABLE t2 WRITE; --echo # Connection con3 connection con3; --echo # Sending: --send DROP TABLE t1, t2 --echo # Connection con2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE state = "Waiting for table metadata lock" AND info = "DROP TABLE t1, t2"; --source include/wait_condition.inc # Note: This query causes two timeouts. # 1: try_acquire_high_prio_shared_mdl_lock on t1 # 2: recover_from_failed_open on t1 SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema= 'test' AND table_name= 't1'; --echo # Connection default connection default; UNLOCK TABLES; --echo # Connection con3 connection con3; --echo # Reaping: DROP TABLE t1, t2 --reap --echo # Connection default connection default; --echo # Cleanup disconnect con2; disconnect con3; --echo # --echo # Test for bug #51134 "Crash in MDL_lock::destroy on a concurrent --echo # DDL workload". --echo # --disable_warnings drop tables if exists t1, t2, t3; --enable_warnings connect (con1, localhost, root, , ); connect (con2, localhost, root, , ); connection default; create table t3 (i int); --echo # Switching to connection 'con1' connection con1; --echo # Lock 't3' so upcoming RENAME is blocked. lock table t3 read; --echo # Switching to connection 'con2' connection con2; --echo # Remember ID for this connection. let $ID= `select connection_id()`; --echo # Start statement which will try to acquire two instances --echo # of X metadata lock on the same object. --echo # Sending: --send rename tables t1 to t2, t2 to t3; --echo # Switching to connection 'default' connection default; --echo # Wait until RENAME TABLE is blocked on table 't3'. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "rename tables t1 to t2, t2 to t3"; --source include/wait_condition.inc --echo # Kill RENAME TABLE. --replace_result $ID ID eval kill query $ID; --echo # Switching to connection 'con2' connection con2; --echo # RENAME TABLE should be aborted but should not crash. --error ER_QUERY_INTERRUPTED --reap --echo # Switching to connection 'con1' connection con1; unlock tables; --echo # Switching to connection 'default' connection default; disconnect con1; disconnect con2; drop table t3; --echo # --echo # Test for the bug where upgradable metadata locks was acquired --echo # even if the table to altered was temporary. --echo # Bug found while working on the related bug #51240. --echo # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (id INT); LOCK TABLE t1 WRITE; --echo # Connection con1 connect (con1, localhost, root); CREATE TEMPORARY TABLE t1 (id INT); # This alter should not block and timeout. ALTER TABLE t1 ADD COLUMN j INT; --echo # Connection default connection default; disconnect con1; UNLOCK TABLES; DROP TABLE t1; --echo # --echo # Test coverage for LOCK TABLES ... READ/WRITE --echo # --echo # Of course this functionality is well-covered by tests all --echo # around the test suite. Still it is nice to have formal --echo # coverage for LOCK TABLES in one place. --echo # --enable_connect_log --echo # We are going to check behavior for both InnoDB and MyISAM --echo # tables. CREATE TABLE t1 (i INT) ENGINE=MyISAM; CREATE TABLE t2 (i INT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); CREATE VIEW v1 AS SELECT * FROM t1; CREATE VIEW v2 AS SELECT * FROM t2; CREATE TABLE t3 (j INT); CREATE TABLE t4 (j INT); CREATE VIEW v3 AS SELECT * FROM t3 WHERE (SELECT COUNT(*) FROM t1); CREATE VIEW v4 AS SELECT * FROM t4 WHERE (SELECT COUNT(*) FROM t2); CREATE TABLE t5 (k INT); CREATE TABLE t6 (k INT); CREATE TRIGGER bi_t5 BEFORE INSERT ON t5 FOR EACH ROW SET @a:= (SELECT COUNT(*) FROM t1); CREATE TRIGGER bi_t6 BEFORE INSERT ON t6 FOR EACH ROW SET @a:= (SELECT COUNT(*) FROM t2); CREATE TABLE t7 (z INT); CREATE TABLE t8 (z INT); CREATE TRIGGER bi_t7 BEFORE INSERT ON t7 FOR EACH ROW INSERT INTO t1 VALUES (1); CREATE TRIGGER bi_t8 BEFORE INSERT ON t8 FOR EACH ROW INSERT INTO t2 VALUES (1); --echo # --echo # 1) LOCK TABLES READ explicitly locking table --echo # --echo # 1.a) Allows concurrent reads LOCK TABLE t1 READ, t2 READ; connect (con1, localhost, root); SELECT * FROM t1; SELECT * FROM t2; connection default; UNLOCK TABLES; --echo # --echo # 1.b) Is allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2; connect (con2, localhost, root); --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2"; --source include/wait_condition.inc --echo # LOCK TABLES should not be blocked. LOCK TABLES t1 READ, t2 READ; UNLOCK TABLES; connection default; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); --echo # --echo # 1.c) Blocks concurrent modifications to table connection default; LOCK TABLE t1 READ, t2 READ; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 1.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t1 READ"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES READ --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); --echo # --echo # The below part of test also covers scenario in which bug #42147 --echo # "Concurrent DML and LOCK TABLE ... READ for InnoDB table cause --echo # warnings in errlog" occurred. --echo # connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 READ"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES READ --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 1.e) LOCK TABLES READ which explicitly locks table is not blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; LOCK TABLES t1 READ; UNLOCK TABLES; connection default; COMMIT; BEGIN; SELECT * FROM t2; connection con1; LOCK TABLES t2 READ; UNLOCK TABLES; connection default; COMMIT; --echo # --echo # 1.f) LOCK TABLES READ which explicitly locks table is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t1 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ COMMIT; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ COMMIT; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 1.g) LOCK TABLES READ which explicitly locks table is compatible --echo # with itself. LOCK TABLES t1 READ, t2 READ; connection con1; LOCK TABLES t1 READ, t2 READ; UNLOCK TABLES; connection default; UNLOCK TABLES; --echo # --echo # 1.h) LOCK TABLES READ which explicitly locks table is not compatible --echo # with LOCK TABLE WRITE. LOCK TABLES t1 READ; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t2 READ; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t1 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; LOCK TABLES t2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; --echo # --echo # 2) LOCK TABLES WRITE explicitly locking table --echo # --echo # 2.a) Doesn't allow concurrent reads connection default; LOCK TABLE t1 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t1; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t1"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; LOCK TABLE t2 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t2; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t2"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; --echo # --echo # 2.b) Is not allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; 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 UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t2"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; --echo # --echo # 2.c) Blocks concurrent modifications to table connection default; LOCK TABLE t1 WRITE, t2 WRITE; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 2.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT 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 # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 2.e) LOCK TABLES WRITE which explicitly locks table is blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction 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 # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; SELECT * FROM t2; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # --echo # 2.f) LOCK TABLES WRITE which explicitly locks table is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction 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 # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 2.g) LOCK TABLES WRITE which explicitly locks table is not compatible --echo # with itself. LOCK TABLES t1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; --echo # --echo # 3) LOCK TABLES which locks table for read through view. --echo # Case of main table in mergeable view. --echo # --echo # 3.a) Allows concurrent reads connection default; LOCK TABLE v1 READ, v2 READ; connection con1; SELECT * FROM t1; SELECT * FROM t2; connection default; UNLOCK TABLES; --echo # --echo # 3.b) Is allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2"; --source include/wait_condition.inc --echo # LOCK TABLES should not be blocked. LOCK TABLES v1 READ, v2 READ; UNLOCK TABLES; connection default; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); --echo # --echo # 3.c) Blocks concurrent modifications to table connection default; LOCK TABLE v1 READ, v2 READ; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 3.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 READ"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES READ --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 READ"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES READ --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 3.e) LOCK TABLES which locks table for read through view is not blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; LOCK TABLES v1 READ; UNLOCK TABLES; connection default; COMMIT; BEGIN; SELECT * FROM t2; connection con1; LOCK TABLES v2 READ; UNLOCK TABLES; connection default; COMMIT; --echo # --echo # 3.f) LOCK TABLES which locks table for read through view is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ COMMIT; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ COMMIT; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 3.g) LOCK TABLES READ which locks table for read through view is --echo # compatible with explicit LOCK TABLES READ on the same table. LOCK TABLES t1 READ, t2 READ; connection con1; LOCK TABLES v1 READ, v2 READ; UNLOCK TABLES; connection default; UNLOCK TABLES; --echo # --echo # 3.h) LOCK TABLES READ which locks table for read through view is --echo # not compatible with explicit LOCK TABLES WRITE on the same table. LOCK TABLES v1 READ; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES v2 READ; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES v1 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; connection default; LOCK TABLES t2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES v2 READ; connection default; --echo # Wait until LOCK TABLES READ is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 READ"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES READ UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES READ --reap UNLOCK TABLES; --echo # --echo # 4) LOCK TABLES which locks table for read through mergeable view. --echo # Case of table not from the main join. Such table will be locked --echo # for read even though view is locked for write. --echo # 4.a) Allows concurrent reads connection default; LOCK TABLES v3 WRITE, v4 WRITE; connection con1; SELECT * FROM t1; SELECT * FROM t2; connection default; UNLOCK TABLES; --echo # --echo # 4.b) Is allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2"; --source include/wait_condition.inc --echo # LOCK TABLES should not be blocked. LOCK TABLES v3 WRITE, v4 WRITE; UNLOCK TABLES; connection default; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); --echo # --echo # 4.c) Blocks concurrent modifications to table connection default; LOCK TABLES v3 WRITE, v4 WRITE; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 4.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v3 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v3 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v4 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v4 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 4.e) LOCK TABLES which locks table for read through view is not blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; LOCK TABLES v3 WRITE; UNLOCK TABLES; connection default; COMMIT; BEGIN; SELECT * FROM t2; connection con1; LOCK TABLES v4 WRITE; UNLOCK TABLES; connection default; COMMIT; --echo # --echo # 4.f) LOCK TABLES which locks table for read through view is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v3 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v3 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES COMMIT; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v4 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v4 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES COMMIT; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 4.g) LOCK TABLES which locks table for read through view is --echo # compatible with explicit LOCK TABLES READ on the same table. LOCK TABLES t1 READ, t2 READ; connection con1; LOCK TABLES v3 WRITE, v4 WRITE; UNLOCK TABLES; connection default; UNLOCK TABLES; --echo # --echo # 4.h) LOCK TABLES which locks table for read through view is --echo # not compatible with explicit LOCK TABLES WRITE on the same table. LOCK TABLES v3 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES v4 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES v3 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v3 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; LOCK TABLES t2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES v4 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v4 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; --echo # --echo # 5) LOCK TABLES which locks tables for write through view --echo # --echo # 5.a) Doesn't allow concurrent reads connection default; LOCK TABLE v1 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t1; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t1"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; LOCK TABLE v2 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t2; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t2"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; --echo # --echo # 5.b) Is not allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v1 WRITE; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 WRITE"; --source include/wait_condition.inc UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t2"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v2 WRITE; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 WRITE"; --source include/wait_condition.inc UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; --echo # --echo # 5.c) Blocks concurrent modifications to table connection default; LOCK TABLE v1 WRITE, v2 WRITE; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 5.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES v2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 5.e) LOCK TABLES which locks table for write through view is blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; --echo # Sending: --send LOCK TABLES v1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; SELECT * FROM t2; connection con1; --echo # Sending: --send LOCK TABLES v2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # --echo # 5.f) LOCK TABLES which locks table for write through view is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v1 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES v2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES v2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 5.g) LOCK TABLES which locks table for write through view is not --echo # compatible with LOCK TABLE WRITE. LOCK TABLES v1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES v2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; --echo # --echo # 6) LOCK TABLES which locks table for read through trigger. --echo # --echo # 6.a) Allows concurrent reads connection default; LOCK TABLES t5 WRITE, t6 WRITE; connection con1; SELECT * FROM t1; SELECT * FROM t2; connection default; UNLOCK TABLES; --echo # --echo # 6.b) Is allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1, t2"; --source include/wait_condition.inc --echo # LOCK TABLES should not be blocked. LOCK TABLES v3 WRITE, t6 WRITE; UNLOCK TABLES; connection default; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); --echo # --echo # 6.c) Blocks concurrent modifications to table connection default; LOCK TABLES t5 WRITE, t6 WRITE; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 6.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t5 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t5 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t6 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t6 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 6.e) LOCK TABLES which locks table for read through trigger is not --echo # blocked by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; LOCK TABLES t5 WRITE; UNLOCK TABLES; connection default; COMMIT; BEGIN; SELECT * FROM t2; connection con1; LOCK TABLES t6 WRITE; UNLOCK TABLES; connection default; COMMIT; --echo # --echo # 6.f) LOCK TABLES which locks table for read through trigger is --echo # blocked by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t5 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t5 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES COMMIT; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t6 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t6 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES COMMIT; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 6.g) LOCK TABLES which locks table for read through trigger is --echo # compatible with explicit LOCK TABLES READ on the same table. LOCK TABLES t1 READ, t2 READ; connection con1; LOCK TABLES t5 WRITE, t6 WRITE; UNLOCK TABLES; connection default; UNLOCK TABLES; --echo # --echo # 6.h) LOCK TABLES which locks table for read through trigger is --echo # not compatible with explicit LOCK TABLES WRITE on the same table. LOCK TABLES t5 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t6 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t1 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t5 WRITE; connection default; --echo # Wait until LOCK TABLES is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t5 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; connection default; LOCK TABLES t2 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t6 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t6 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES --reap UNLOCK TABLES; --echo # --echo # 7) LOCK TABLES which locks tables for write through trigger --echo # --echo # 7.a) Doesn't allow concurrent reads connection default; LOCK TABLE t7 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t1; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t1"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; LOCK TABLE t8 WRITE; connection con1; --echo # Sending: --send SELECT * FROM t2; connection default; --echo # Wait until SELECT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "SELECT * FROM t2"; --source include/wait_condition.inc --echo # Unblock SELECT UNLOCK TABLES; connection con1; --echo # Reaping SELECT --reap connection default; --echo # --echo # 7.b) Is not allowed concurrently to reads SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t1; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t1"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t7 WRITE; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t7 WRITE"; --source include/wait_condition.inc UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Start read by sending SELECT: --send SELECT GET_LOCK('mysqltest_lock', 100) FROM t2; connection con2; --echo # Wait until SELECT gets read lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "SELECT GET_LOCK('mysqltest_lock', 100) FROM t2"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t8 WRITE; connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t8 WRITE"; --source include/wait_condition.inc UNLOCK TABLES; --echo # Unblock SELECT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping SELECT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLE WRITE --reap UNLOCK TABLES; --echo # --echo # 7.c) Blocks concurrent modifications to table connection default; LOCK TABLE t7 WRITE, t8 WRITE; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con2; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # Unblock INSERTs UNLOCK TABLES; connection con1; --echo # Reap INSERT --reap connection con2; --echo # Reap INSERT --reap connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 7.d) Is blocked by concurrent table modifications SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t1 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t7 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t7 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; SELECT GET_LOCK('mysqltest_lock', 100); connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100)); connection con2; --echo # Wait until INSERT gets SW MDL lock and starts waiting for user lock let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "User lock" and info = "INSERT INTO t2 VALUES (GET_LOCK('mysqltest_lock', 100))"; --source include/wait_condition.inc --echo # Sending: --send LOCK TABLES t8 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due to INSERT let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t8 WRITE"; --source include/wait_condition.inc --echo # Unblock INSERT. SELECT RELEASE_LOCK('mysqltest_lock'); connection con1; --echo # Reaping INSERT --reap SELECT RELEASE_LOCK('mysqltest_lock'); connection con2; --echo # Reaping LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 7.e) LOCK TABLES which locks table for write through trigger is blocked --echo # by concurrent transactions which read table. BEGIN; SELECT * FROM t1; connection con1; --echo # Sending: --send LOCK TABLES t7 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t7 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; SELECT * FROM t2; connection con1; --echo # Sending: --send LOCK TABLES t8 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t8 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # --echo # 7.f) LOCK TABLES which locks table for write through trigger is blocked --echo # by concurrent transactions which modify table. BEGIN; INSERT INTO t1 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t7 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t7 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; BEGIN; INSERT INTO t2 VALUES (1); connection con1; --echo # Sending: --send LOCK TABLES t8 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked due concurrent transaction let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t8 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE COMMIT; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; --echo # Revert effects from INSERTs DELETE FROM t1 LIMIT 1; DELETE FROM t2 LIMIT 1; --echo # --echo # 7.g) LOCK TABLES which locks table for write through trigger is not --echo # compatible with LOCK TABLE WRITE. LOCK TABLES t7 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t1 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked 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 # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; connection default; LOCK TABLES t8 WRITE; connection con1; --echo # Sending: --send LOCK TABLES t2 WRITE; connection default; --echo # Wait until LOCK TABLES WRITE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLES t2 WRITE"; --source include/wait_condition.inc --echo # Unblock LOCK TABLES WRITE UNLOCK TABLES; connection con1; --echo # Reap LOCK TABLES WRITE --reap UNLOCK TABLES; disconnect con1; disconnect con2; connection default; DROP VIEW v1, v2, v3, v4; DROP TABLES t1, t2, t3, t4, t5, t6, t7, t8; --disable_connect_log --echo # --echo # Test coverage for LOCK TABLES ... READ LOCAL --echo # --enable_connect_log SET @old_concurrent_insert= @@global.concurrent_insert; SET @@global.concurrent_insert= 1; CREATE TABLE t1 (i INT) ENGINE=MyISAM; CREATE TABLE t2 (i INT) ENGINE=InnoDB; CREATE VIEW v1 AS SELECT * FROM t1; CREATE VIEW v2 AS (SELECT * FROM t1) UNION (SELECT * FROM t1); CREATE VIEW v3 AS SELECT * FROM t2; --echo # --echo # 1) READ LOCAL is fully supported for MyISAM. --echo # Concurrent inserts are allowed. --echo # LOCK TABLE t1 READ LOCAL; connect (con1, localhost, root); INSERT INTO t1 VALUES (1); --echo # --echo # Concurrent updates are blocked. --echo # --echo # Sending: --send UPDATE t1 SET i= 2 connection default; --echo # Wait until UPDATE is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "UPDATE t1 SET i= 2"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping UPDATE. --reap --echo # --echo # 2) READ LOCAL works even for mergeable views on --echo # top of MyISAM tables. --echo # connection default; LOCK TABLE v1 READ LOCAL; connection con1; INSERT INTO v1 VALUES (1); INSERT INTO t1 VALUES (3); --echo # Concurrent updates are blocked. --echo # Sending: --send UPDATE t1 SET i= 2 connection default; --echo # Wait until UPDATE is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table level lock" and info = "UPDATE t1 SET i= 2"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping UPDATE. --reap --echo # --echo # 3) READ LOCAL doesn't work for non-mergeable views on --echo # top of MyISAM tables. --echo # connection default; LOCK TABLE v2 READ LOCAL; connection con1; --echo # Sending: --send INSERT INTO t1 VALUES (1) connection default; --echo # Wait until INSERT is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping INSERT. --reap connection default; LOCK TABLE v2 READ LOCAL; connection con1; --echo # Sending: --send UPDATE t1 SET i= 2; connection default; --echo # Wait until UPDATE is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE t1 SET i= 2"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping UPDATE. --reap --echo # --echo # 4) READ LOCAL locks are upgraded to simple READ locks --echo # for InnoDB tables. So they block both concurrent inserts --echo # and updates. --echo # connection default; LOCK TABLE t2 READ LOCAL; connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping INSERT. --reap connection default; LOCK TABLE t2 READ LOCAL; connection con1; --echo # Sending: --send UPDATE t2 SET i= 2; connection default; --echo # Wait until UPDATE is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE t2 SET i= 2"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping UPDATE. --reap --echo # --echo # 5) For mergeable views on top of InnoDB tables READ LOCAL locks are --echo # upgraded to simple READ locks as well. --echo # connection default; LOCK TABLE v3 READ LOCAL; connection con1; --echo # Sending: --send INSERT INTO t2 VALUES (1) connection default; --echo # Wait until INSERT is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping INSERT. --reap connection default; LOCK TABLE v3 READ LOCAL; connection con1; --echo # Sending: --send UPDATE t2 SET i= 2; connection default; --echo # Wait until UPDATE is blocked. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE t2 SET i= 2"; --source include/wait_condition.inc UNLOCK TABLES; connection con1; --echo # Reaping UPDATE. --reap connection default; disconnect con1; DROP VIEW v1, v2, v3; DROP TABLES t1, t2; SET @@global.concurrent_insert= @old_concurrent_insert; --disable_connect_log --echo # --echo # Test coverage for interaction between LOCK TABLE ... READ and --echo # concurrent DML which uses LOW_PRIORITY and HIGH_PRIORITY clauses/ --echo # concurrent DML which is executed in @@low_priority_updates=1 mode. --echo # --enable_connect_log --echo # We will use MyISAM to avoid row-locks. CREATE TABLE t1 (i INT) ENGINE=MyISAM; CREATE VIEW v1 AS SELECT * FROM t1; CREATE TABLE t2 (j INT); CREATE TRIGGER t2_ai AFTER INSERT ON t2 FOR EACH ROW INSERT LOW_PRIORITY INTO t1 VALUES (2); CREATE TABLE t3 (k INT); CREATE TRIGGER t3_ai AFTER INSERT ON t3 FOR EACH ROW INSERT INTO t1 VALUES (2); CREATE TABLE tm (i INT) ENGINE=MERGE UNION=(t1); --echo # --echo # 1) Let us check that DML operations with LOW_PRIORITY clauses have --echo # lower priority than pending LOCK TABLE ... READ, thus can't starve --echo # it out. --echo # --echo # Acquire SW lock on the table, to create pending LOCK TABLE ... READ. BEGIN; INSERT INTO t1 VALUES (1); connect (blocker, localhost, root); --echo # Sending: --send LOCK TABLE t1 READ; connection default; --echo # Wait until LOCK TABLE READ gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLE t1 READ"; --source include/wait_condition.inc connect (con_insert, localhost, root); --echo # INSERT HIGH_PRIORITY should not get blocked INSERT HIGH_PRIORITY INTO t1 VALUES (1); --echo # Sending: --send INSERT LOW_PRIORITY INTO t1 VALUES (1); connection default; --echo # Check that INSERT is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT LOW_PRIORITY INTO t1 VALUES (1)"; --source include/wait_condition.inc connect (con_replace, localhost, root); --echo # Sending: --send REPLACE LOW_PRIORITY INTO t1 VALUES (1); connection default; --echo # Check that REPLACE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "REPLACE LOW_PRIORITY INTO t1 VALUES (1)"; --source include/wait_condition.inc connect (con_update, localhost, root); --echo # Sending: --send UPDATE LOW_PRIORITY t1 SET i= 1; connection default; --echo # Check that UPDATE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE LOW_PRIORITY t1 SET i= 1"; --source include/wait_condition.inc connect (con_update_multi, localhost, root); --echo # Sending: --send UPDATE LOW_PRIORITY t1 AS a, t1 AS b SET a.i= 1; connection default; --echo # Check that multi-UPDATE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE LOW_PRIORITY t1 AS a, t1 AS b SET a.i= 1"; --source include/wait_condition.inc connect (con_delete, localhost, root); --echo # Sending: --send DELETE LOW_PRIORITY FROM t1 LIMIT 1; connection default; --echo # Check that DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE LOW_PRIORITY FROM t1 LIMIT 1"; --source include/wait_condition.inc connect (con_delete_multi, localhost, root); --echo # Sending: --send DELETE LOW_PRIORITY FROM a USING t1 AS a, t1 AS b; connection default; --echo # Check that multi-DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE LOW_PRIORITY FROM a USING t1 AS a, t1 AS b"; --source include/wait_condition.inc connect (con_load, localhost, root); --echo # Sending: --send LOAD DATA LOW_PRIORITY INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1 (@dummy,i); connection default; --echo # Check that LOAD DATA is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOAD DATA LOW_PRIORITY INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1 (@dummy,i)"; --source include/wait_condition.inc --echo # --echo # This should work even for views. --echo # connect (con_view, localhost, root); --echo # Sending: --send DELETE LOW_PRIORITY FROM v1; connection default; --echo # Check that DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE LOW_PRIORITY FROM v1"; --source include/wait_condition.inc --echo # --echo # And when LOW_PRIORITY clause is used in trigger. --echo # connect (con_trigger, localhost, root); --echo # Sending: --send INSERT INTO t2 VALUES (1); connection default; --echo # Check that INSERT in trigger is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t2 VALUES (1)"; --source include/wait_condition.inc --echo # --echo # And for MERGE tables --echo # connect (con_merge, localhost, root); --echo # Sending: --send DELETE LOW_PRIORITY FROM tm LIMIT 1; connection default; --echo # Check that DELETE from MERGE table is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE LOW_PRIORITY FROM tm LIMIT 1"; --source include/wait_condition.inc --echo # Unblock LOCK TABLE .. READ COMMIT; connection blocker; --echo # Reaping LOCK TABLE .. READ --reap UNLOCK TABLES; --echo # Reap all DML statements. connection con_insert; --reap connection con_replace; --reap connection con_update; --reap connection con_update_multi; --reap connection con_delete; --reap connection con_delete_multi; --reap connection con_load; --reap connection con_view; --reap connection con_trigger; --reap connection con_merge; --reap connection default; --echo # --echo # 2) Let us check that DML operations have lower priority than pending --echo # LOCK TABLE ... READ when @@low_priority_updates mode is on. --echo # --echo # Acquire SW lock on the table, to create pending LOCK TABLE ... READ. BEGIN; INSERT INTO t1 VALUES (0); connection blocker; --echo # Sending: --send LOCK TABLE t1 READ; connection default; --echo # Wait until LOCK TABLE READ gets blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOCK TABLE t1 READ"; --source include/wait_condition.inc connection con_insert; SET @@session.low_priority_updates= 1; --echo # INSERT HIGH_PRIORITY still should not get blocked INSERT HIGH_PRIORITY INTO t1 VALUES (1); --echo # Sending: --send INSERT INTO t1 VALUES (1); connection default; --echo # Check that INSERT is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con_replace; SET @@session.low_priority_updates= 1; --echo # Sending: --send REPLACE INTO t1 VALUES (1); connection default; --echo # Check that REPLACE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "REPLACE INTO t1 VALUES (1)"; --source include/wait_condition.inc connection con_update; SET @@session.low_priority_updates= 1; --echo # Sending: --send UPDATE t1 SET i= 1; connection default; --echo # Check that UPDATE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE t1 SET i= 1"; --source include/wait_condition.inc connection con_update_multi; SET @@session.low_priority_updates= 1; --echo # Sending: --send UPDATE t1 AS a, t1 AS b SET a.i= 1; connection default; --echo # Check that multi-UPDATE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "UPDATE t1 AS a, t1 AS b SET a.i= 1"; --source include/wait_condition.inc connection con_delete; SET @@session.low_priority_updates= 1; --echo # Sending: --send DELETE FROM t1 LIMIT 1; connection default; --echo # Check that DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE FROM t1 LIMIT 1"; --source include/wait_condition.inc connection con_delete_multi; SET @@session.low_priority_updates= 1; --echo # Sending: --send DELETE FROM a USING t1 AS a, t1 AS b; connection default; --echo # Check that multi-DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE FROM a USING t1 AS a, t1 AS b"; --source include/wait_condition.inc connection con_load; SET @@session.low_priority_updates= 1; --echo # Sending: --send LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1 (@dummy,i); connection default; --echo # Check that LOAD DATA is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE t1 (@dummy,i)"; --source include/wait_condition.inc connection con_view; SET @@session.low_priority_updates= 1; --echo # Sending: --send DELETE FROM v1; connection default; --echo # Check that DELETE is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE FROM v1"; --source include/wait_condition.inc --echo # --echo # And when table used in trigger. --echo # connection con_trigger; SET @@session.low_priority_updates= 1; --echo # Sending: --send INSERT INTO t3 VALUES (1); connection default; --echo # Check that INSERT in trigger is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "INSERT INTO t3 VALUES (1)"; --source include/wait_condition.inc --echo # --echo # And for MERGE tables --echo # connection con_merge; SET @@session.low_priority_updates= 1; --echo # Sending: --send DELETE FROM tm LIMIT 1; connection default; --echo # Check that DELETE from MERGE table is blocked let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "DELETE FROM tm LIMIT 1"; --source include/wait_condition.inc --echo # Unblock LOCK TABLE .. READ COMMIT; connection blocker; --echo # Reaping LOCK TABLE .. READ --reap UNLOCK TABLES; --echo # Reap all DML statements. connection con_insert; --reap connection con_replace; --reap connection con_update; --reap connection con_update_multi; --reap connection con_delete; --reap connection con_delete_multi; --reap connection con_load; --reap connection con_view; --reap connection con_trigger; --reap connection con_merge; --reap connection default; disconnect blocker; disconnect con_insert; disconnect con_replace; disconnect con_update; disconnect con_update_multi; disconnect con_delete; disconnect con_delete_multi; disconnect con_load; disconnect con_view; disconnect con_trigger; disconnect con_merge; DROP VIEW v1; DROP TABLES tm, t2, t3, t1; --disable_connect_log --echo # --echo # Test for bug #11764618 "DEADLOCK WHEN DDL UNDER LOCK TABLES --echo # WRITE, READ + PREPARE". --echo # --enable_connect_log connect (con1,localhost,root,,test,,); connect (con2,localhost,root,,test,,); connect (con3,localhost,root,,test,,); connection default; create table t1(i int); create table t2(i int); create table t3(i int); create table t4(i int); lock tables t1 write, t3 read; connection con1; begin; select count(*) from t4; --echo # Sending: --send insert into t3 values (1); connection con2; --echo # Wait until 'con1' acquires SR metadata lock on 't4' --echo # and blocks on 't3'. Before WL#6671 waiting has happened --echo # on THR_LOCK lock which led to deadlock. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "insert into t3 values (1)"; --source include/wait_condition.inc --echo # Sending: --send rename table t2 to t0, t4 to t2, t0 to t4; connection con3; --echo # Wait until RENAME acquires X metadata lock on 't2' --echo # and blocks on 't4'. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "rename table t2 to t0, t4 to t2, t0 to t4"; --source include/wait_condition.inc --echo # Sending: --send prepare stmt1 from 'select * from t1, t2'; connection default; --echo # Wait until PREPARE acquires S metadata lock on 't1' --echo # and blocks on 't2'. let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for table metadata lock" and info = "PREPARE stmt1 FROM ..."; --source include/wait_condition.inc --echo # This ALTER TABLE upgrades SNRW lock on t1 to X lock. --echo # In the past this caused deadlock. alter table t1 add column j int; unlock tables; connection con1; --echo # Reap INSERT --reap commit; connection con2; --echo # Reap RENAME --reap connection con3; --echo # Reap PREPARE --reap connection default; disconnect con1; disconnect con2; disconnect con3; drop tables t1, t2, t3, t4; --disable_connect_log # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc
Close