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 | : 13.58.117.102
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 : view.test
# The include statement below is a temp one for tests that are yet to #be ported to run with InnoDB, #but needs to be kept for tests that would need MyISAM in future. --source include/force_myisam_default.inc --disable_warnings drop table if exists t1,t2,t3,t4,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6; drop database if exists mysqltest; --enable_warnings use test; # Save the initial number of concurrent sessions. --source include/count_sessions.inc # # some basic test of views and its functionality # # create view on nonexistent table -- error ER_NO_SUCH_TABLE create view v1 (c,d) as select a,b from t1; create temporary table t1 (a int, b int); # view on temporary table -- error ER_VIEW_SELECT_TMPTABLE create view v1 (c) as select b+1 from t1; drop table t1; create table t1 (a int, b int); insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10); # view with variable -- error ER_VIEW_SELECT_VARIABLE create view v1 (c,d) as select a,b+@@global.max_user_connections from t1; -- error ER_VIEW_SELECT_VARIABLE create view v1 (c,d) as select a,b from t1 where a = @@global.max_user_connections; -- error ER_VIEW_SELECT_VARIABLE CREATE VIEW v1 AS SELECT @a=1 FROM DUAL; -- error ER_VIEW_SELECT_VARIABLE CREATE VIEW v1 AS SELECT 1 FROM DUAL WHERE @a>1; -- error ER_VIEW_SELECT_VARIABLE CREATE VIEW v1 AS SELECT (@a:= 1) AS one FROM DUAL; -- error ER_VIEW_SELECT_VARIABLE CREATE VIEW v1 AS SELECT 1 FROM DUAL WHERE (@a:= 1); # simple view create view v1 (c) as select b+1 from t1; select c from v1; select is_updatable from information_schema.views where table_name='v1'; # temporary table should not hide table of view create temporary table t1 (a int, b int); # this is empty select * from t1; # but this based on normal t1 select c from v1; show create table v1; show create view v1; -- error ER_WRONG_OBJECT show create view t1; drop table t1; # try to use fields from underlying table -- error ER_BAD_FIELD_ERROR select a from v1; -- error ER_BAD_FIELD_ERROR select v1.a from v1; -- error ER_BAD_FIELD_ERROR select b from v1; -- error ER_BAD_FIELD_ERROR select v1.b from v1; # view with different algorithms (explain output differs) explain extended select c from v1; create algorithm=temptable view v2 (c) as select b+1 from t1; show create view v2; select c from v2; explain extended select c from v2; # try to use underlying table fields in VIEW creation process -- error ER_BAD_FIELD_ERROR create view v3 (c) as select a+1 from v1; -- error ER_BAD_FIELD_ERROR create view v3 (c) as select b+1 from v1; # VIEW on VIEW test with mixing different algorithms on different order create view v3 (c) as select c+1 from v1; select c from v3; explain extended select c from v3; create algorithm=temptable view v4 (c) as select c+1 from v2; select c from v4; explain extended select c from v4; create view v5 (c) as select c+1 from v2; select c from v5; explain extended select c from v5; create algorithm=temptable view v6 (c) as select c+1 from v1; select c from v6; explain extended select c from v6; # show table/table status test show tables; show full tables; --replace_column 8 # 12 # 13 # show table status; drop view v1,v2,v3,v4,v5,v6; # # alter/create view test # # view with subqueries of different types create view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1; create view v2 as select c, d from v1; select * from v1; select * from v2; # try to create VIEW with name of existing VIEW -- error ER_TABLE_EXISTS_ERROR create view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1; # 'or replace' should work in this case create or replace view v1 (c,d,e,f) as select a,b, a in (select a+2 from t1), a = all (select a from t1) from t1; # try to ALTER unexisting VIEW drop view v2; -- error ER_NO_SUCH_TABLE alter view v2 as select c, d from v1; # 'or replace' on unexisting view create or replace view v2 as select c, d from v1; # alter view on existing view alter view v1 (c,d) as select a,max(b) from t1 group by a; # check that created view works select * from v1; select * from v2; # try to drop nonexistent VIEW -- error ER_BAD_TABLE_ERROR drop view v100; # try to drop table with DROP VIEW -- error ER_WRONG_OBJECT drop view t1; # try to drop VIEW with DROP TABLE -- error ER_BAD_TABLE_ERROR drop table v1; # try to drop table with DROP VIEW drop view v1,v2; drop table t1; # # outer left join with merged views # create table t1 (a int); insert into t1 values (1), (2), (3); create view v1 (a) as select a+1 from t1; create view v2 (a) as select a-1 from t1; --sorted_result select * from t1 natural left join v1; --sorted_result select * from v2 natural left join t1; --sorted_result select * from v2 natural left join v1; drop view v1, v2; drop table t1; # # DISTINCT option for VIEW # create table t1 (a int); insert into t1 values (1), (2), (3), (1), (2), (3); create view v1 as select distinct a from t1; select * from v1; explain select * from v1; select * from t1; drop view v1; drop table t1; # # syntax compatibility # create table t1 (a int); -- error ER_VIEW_NONUPD_CHECK create view v1 as select distinct a from t1 WITH CHECK OPTION; create view v1 as select a from t1 WITH CHECK OPTION; create view v2 as select a from t1 WITH CASCADED CHECK OPTION; create view v3 as select a from t1 WITH LOCAL CHECK OPTION; drop view v3 RESTRICT; drop view v2 CASCADE; drop view v1; drop table t1; # # aliases # create table t1 (a int, b int); insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10); create view v1 (c) as select b+1 from t1; select test.c from v1 test; create algorithm=temptable view v2 (c) as select b+1 from t1; select test.c from v2 test; select test1.* from v1 test1, v2 test2 where test1.c=test2.c; select test2.* from v1 test1, v2 test2 where test1.c=test2.c; drop table t1; drop view v1,v2; # # LIMIT clause test # create table t1 (a int); insert into t1 values (1), (2), (3), (4); create view v1 as select a+1 from t1 order by 1 desc limit 2; select * from v1; explain select * from v1; drop view v1; drop table t1; # # CREATE ... SELECT view test # create table t1 (a int); insert into t1 values (1), (2), (3), (4); create view v1 as select a+1 from t1; create table t2 select * from v1; show columns from t2; select * from t2; drop view v1; drop table t1,t2; # # simple view + simple update # create table t1 (a int, b int, primary key(a)); insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10); create view v1 (a,c) as select a, b+1 from t1; create algorithm=temptable view v2 (a,c) as select a, b+1 from t1; select is_updatable from information_schema.views where table_name='v2'; select is_updatable from information_schema.views where table_name='v1'; # try to update expression -- error ER_NONUPDATEABLE_COLUMN update v1 set c=a+c; # try to update VIEW with forced TEMPORARY TABLE algorithm -- error ER_NON_UPDATABLE_TABLE update v2 set a=a+c; # updatable field of updateable view update v1 set a=a+c; select * from v1; select * from t1; drop table t1; drop view v1,v2; # # simple view + simple multi-update # create table t1 (a int, b int, primary key(a)); insert into t1 values (10,2), (20,3), (30,4), (40,5), (50,10); create table t2 (x int); insert into t2 values (10), (20); create view v1 (a,c) as select a, b+1 from t1; create algorithm=temptable view v2 (a,c) as select a, b+1 from t1; # try to update expression -- error ER_NONUPDATEABLE_COLUMN update t2,v1 set v1.c=v1.a+v1.c where t2.x=v1.a; # try to update VIEW with forced TEMPORARY TABLE algorithm -- error ER_NON_UPDATABLE_TABLE update t2,v2 set v2.a=v2.a+c where t2.x=v2.a; # updatable field of updateable view update t2,v1 set v1.a=v1.a+v1.c where t2.x=v1.a; select * from v1; select * from t1; drop table t1,t2; drop view v1,v2; # # MERGE VIEW with WHERE clause # create table t1 (a int, b int, primary key(b)); insert into t1 values (1,20), (2,30), (3,40), (4,50), (5,100); create view v1 (c) as select b from t1 where a<3; # simple select and explaint to be sure that it is MERGE select * from v1; explain extended select * from v1; # update test update v1 set c=c+1; select * from t1; # join of such VIEWs test create view v2 (c) as select b from t1 where a>=3; select * from v1, v2; drop view v1, v2; drop table t1; # # simple view + simple delete # create table t1 (a int, b int, primary key(a)); insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10); create view v1 (a,c) as select a, b+1 from t1; create algorithm=temptable view v2 (a,c) as select a, b+1 from t1; # try to update VIEW with forced TEMPORARY TABLE algorithm -- error ER_NON_UPDATABLE_TABLE delete from v2 where c < 4; # updatable field of updateable view delete from v1 where c < 4; select * from v1; select * from t1; drop table t1; drop view v1,v2; # # simple view + simple multi-delete # create table t1 (a int, b int, primary key(a)); insert into t1 values (1,2), (2,3), (3,4), (4,5), (5,10); create table t2 (x int); insert into t2 values (1), (2), (3), (4); create view v1 (a,c) as select a, b+1 from t1; create algorithm=temptable view v2 (a,c) as select a, b+1 from t1; # try to update VIEW with forced TEMPORARY TABLE algorithm -- error ER_NON_UPDATABLE_TABLE delete v2 from t2,v2 where t2.x=v2.a; # updatable field of updateable view delete v1 from t2,v1 where t2.x=v1.a; select * from v1; select * from t1; drop table t1,t2; drop view v1,v2; # # key presence check # create table t1 (a int, b int, c int, primary key(a,b)); insert into t1 values (10,2,-1), (20,3,-2), (30,4,-3), (40,5,-4), (50,10,-5); create view v1 (x,y) as select a, b from t1; create view v2 (x,y) as select a, c from t1; set updatable_views_with_limit=NO; update v1 set x=x+1; update v2 set x=x+1; update v1 set x=x+1 limit 1; -- error ER_NON_UPDATABLE_TABLE update v2 set x=x+1 limit 1; -- error ER_NON_UPDATABLE_TABLE delete from v2 limit 1; set updatable_views_with_limit=YES; update v1 set x=x+1 limit 1; update v2 set x=x+1 limit 1; set updatable_views_with_limit=DEFAULT; show variables like "updatable_views_with_limit"; select * from t1; drop table t1; drop view v1,v2; # # simple insert # create table t1 (a int, b int, c int, primary key(a,b)); insert into t1 values (10,2,-1), (20,3,-2); create view v1 (x,y,z) as select c, b, a from t1; create view v2 (x,y) as select b, a from t1; create view v3 (x,y,z) as select b, a, b from t1; create view v4 (x,y,z) as select c+1, b, a from t1; create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1; # try insert to VIEW with fields duplicate -- error ER_NON_INSERTABLE_TABLE insert into v3 values (-60,4,30); # try insert to VIEW with expression in SELECT list -- error ER_NONUPDATEABLE_COLUMN, insert into v4 values (-60,4,30); # try insert to VIEW using temporary table algorithm -- error ER_NON_INSERTABLE_TABLE insert into v5 values (-60,4,30); insert into v1 values (-60,4,30); insert into v1 (z,y,x) values (50,6,-100); insert into v2 values (5,40); select * from t1; drop table t1; drop view v1,v2,v3,v4,v5; # # insert ... select # create table t1 (a int, b int, c int, primary key(a,b)); insert into t1 values (10,2,-1), (20,3,-2); create table t2 (a int, b int, c int, primary key(a,b)); insert into t2 values (30,4,-60); create view v1 (x,y,z) as select c, b, a from t1; create view v2 (x,y) as select b, a from t1; create view v3 (x,y,z) as select b, a, b from t1; create view v4 (x,y,z) as select c+1, b, a from t1; create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1; # try insert to VIEW with fields duplicate -- error ER_NON_INSERTABLE_TABLE insert into v3 select c, b, a from t2; # try insert to VIEW with expression in SELECT list -- error ER_NONUPDATEABLE_COLUMN, insert into v4 select c, b, a from t2; # try insert to VIEW using temporary table algorithm -- error ER_NON_INSERTABLE_TABLE insert into v5 select c, b, a from t2; insert into v1 select c, b, a from t2; insert into v1 (z,y,x) select a+20,b+2,-100 from t2; insert into v2 select b+1, a+10 from t2; select * from t1; drop table t1, t2; drop view v1,v2,v3,v4,v5; # # outer join based on VIEW with WHERE clause # create table t1 (a int, primary key(a)); insert into t1 values (1), (2), (3); create view v1 (x) as select a from t1 where a > 1; select t1.a, v1.x from t1 left join v1 on (t1.a= v1.x); drop table t1; drop view v1; # # merging WHERE condition on VIEW on VIEW # create table t1 (a int, primary key(a)); insert into t1 values (1), (2), (3), (200); create view v1 (x) as select a from t1 where a > 1; create view v2 (y) as select x from v1 where x < 100; select * from v2; drop table t1; drop view v1,v2; # # VIEW on non-updatable view # create table t1 (a int, primary key(a)); insert into t1 values (1), (2), (3), (200); create ALGORITHM=TEMPTABLE view v1 (x) as select a from t1; create view v2 (y) as select x from v1; -- error ER_NON_UPDATABLE_TABLE update v2 set y=10 where y=2; drop table t1; drop view v1,v2; # # auto_increment field out of VIEW # create table t1 (a int not null auto_increment, b int not null, primary key(a), unique(b)); create view v1 (x) as select b from t1; insert into v1 values (1); select last_insert_id(); insert into t1 (b) values (2); select last_insert_id(); select * from t1; drop view v1; drop table t1; # # VIEW fields quoting # set sql_mode='ansi'; create table t1 ("a*b" int); create view v1 as select "a*b" from t1; show create view v1; drop view v1; drop table t1; set sql_mode=default; # # VIEW without tables # create table t1 (t_column int); create view v1 as select 'a'; select * from v1, t1; drop view v1; drop table t1; # # quote mark inside table name # create table `t1a``b` (col1 char(2)); create view v1 as select * from `t1a``b`; select * from v1; describe v1; drop view v1; drop table `t1a``b`; # # Changing of underlying table # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1 (col1 char(5),col2 char(5)); create view v1 as select * from t1; drop table t1; create table t1 (col1 char(5),newcol2 char(5)); -- error ER_VIEW_INVALID insert into v1 values('a','aa'); drop table t1; -- error ER_VIEW_INVALID select * from v1; drop view v1; SET sql_mode = default; # # check of duplication of column names # -- error ER_DUP_FIELDNAME create view v1 (a,a) as select 'a','a'; # # updatablity should be transitive # create table t1 (col1 int,col2 char(22)); insert into t1 values(5,'Hello, world of views'); create view v1 as select * from t1; create view v2 as select * from v1; update v2 set col2='Hello, view world'; select is_updatable from information_schema.views where table_schema != 'sys'; select * from t1; drop view v2, v1; drop table t1; # # check 'use index' on view with temporary table # create table t1 (a int, b int); create view v1 as select a, sum(b) from t1 group by a; --error ER_KEY_DOES_NOT_EXITS select b from v1 use index (some_index) where b=1; drop view v1; drop table t1; # # using VIEW fields several times in query resolved via temporary tables # create table t1 (col1 char(5),col2 char(5)); create view v1 (col1,col2) as select col1,col2 from t1; insert into v1 values('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s2','p1'),('s3','p2'),('s4','p4'); select distinct first.col2 from t1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1); select distinct first.col2 from v1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1); drop view v1; drop table t1; # # Test of view updatability in prepared statement # create table t1 (a int); create view v1 as select a from t1; insert into t1 values (1); #update SET @v0 = '2'; PREPARE stmt FROM 'UPDATE v1 SET a = ?'; EXECUTE stmt USING @v0; DEALLOCATE PREPARE stmt; #insert without field list SET @v0 = '3'; PREPARE stmt FROM 'insert into v1 values (?)'; EXECUTE stmt USING @v0; DEALLOCATE PREPARE stmt; #insert with field list SET @v0 = '4'; PREPARE stmt FROM 'insert into v1 (a) values (?)'; EXECUTE stmt USING @v0; DEALLOCATE PREPARE stmt; select * from t1; drop view v1; drop table t1; # # error on preparation # -- error ER_NO_TABLES_USED CREATE VIEW v02 AS SELECT * FROM DUAL; SHOW TABLES; # # EXISTS with UNION VIEW # CREATE VIEW v1 AS SELECT EXISTS (SELECT 1 UNION SELECT 2); select * from v1; drop view v1; # # using VIEW where table is required # create table t1 (col1 int,col2 char(22)); create view v1 as select * from t1; -- error ER_WRONG_OBJECT create index i1 on v1 (col1); drop view v1; drop table t1; # # connection_id(), pi(), current_user(), version() representation test # CREATE VIEW v1 (f1,f2,f3,f4) AS SELECT connection_id(), pi(), current_user(), version(); SHOW CREATE VIEW v1; drop view v1; # # VIEW built over UNION # create table t1 (s1 int); create table t2 (s2 int); insert into t1 values (1), (2); insert into t2 values (2), (3); create view v1 as select * from t1,t2 union all select * from t1,t2; select * from v1; drop view v1; drop tables t1, t2; # # Aggregate functions in view list # create table t1 (col1 int); insert into t1 values (1); create view v1 as select count(*) from t1; insert into t1 values (null); select * from v1; drop view v1; drop table t1; # # Showing VIEW with VIEWs in subquery # create table t1 (a int); create table t2 (a int); create view v1 as select a from t1; create view v2 as select a from t2 where a in (select a from v1); show create view v2; drop view v2, v1; drop table t1, t2; # # SHOW VIEW view with name with spaces # CREATE VIEW `v 1` AS select 5 AS `5`; show create view `v 1`; drop view `v 1`; # # Removing database with .frm archives # create database mysqltest; create table mysqltest.t1 (a int, b int); create view mysqltest.v1 as select a from mysqltest.t1; alter view mysqltest.v1 as select b from mysqltest.t1; alter view mysqltest.v1 as select a from mysqltest.t1; drop database mysqltest; # # VIEW with full text # CREATE TABLE t1 (c1 int not null auto_increment primary key, c2 varchar(20), fulltext(c2)); insert into t1 (c2) VALUES ('real Beer'),('Water'),('Kossu'),('Coca-Cola'),('Vodka'),('Wine'),('almost real Beer'); select * from t1 WHERE match (c2) against ('Beer'); CREATE VIEW v1 AS SELECT * from t1 WHERE match (c2) against ('Beer'); select * from v1; drop view v1; drop table t1; # # distinct in temporary table with a VIEW # create table t1 (a int); insert into t1 values (1),(1),(2),(2),(3),(3); create view v1 as select a from t1; select distinct a from v1; select distinct a from v1 limit 2; select distinct a from t1 limit 2; prepare stmt1 from "select distinct a from v1 limit 2"; execute stmt1; execute stmt1; deallocate prepare stmt1; drop view v1; drop table t1; # # aggregate function of aggregate function # create table t1 (tg_column bigint); create view v1 as select count(tg_column) as vg_column from t1; select avg(vg_column) from v1; drop view v1; drop table t1; # # VIEW of VIEW with column renaming # create table t1 (col1 bigint not null, primary key (col1)); create table t2 (col1 bigint not null, key (col1)); create view v1 as select * from t1; create view v2 as select * from t2; insert into v1 values (1); insert into v2 values (1); create view v3 (a,b) as select v1.col1 as a, v2.col1 as b from v1, v2 where v1.col1 = v2.col1; select * from v3; show create view v3; drop view v3, v2, v1; drop table t2, t1; # # VIEW based on functions with complex names # create function `f``1` () returns int return 5; create view v1 as select test.`f``1` (); show create view v1; select * from v1; drop view v1; drop function `f``1`; # # tested problem when function name length close to ALIGN_SIZE # create function a() returns int return 5; create view v1 as select a(); select * from v1; drop view v1; drop function a; # # VIEW with collation # create table t2 (col1 char collate latin1_german2_ci); create view v2 as select col1 collate latin1_german1_ci from t2; show create view v2; show create view v2; drop view v2; drop table t2; # # order by refers on integer field # create table t1 (a int); insert into t1 values (1), (2); create view v1 as select 5 from t1 order by 1; select * from v1; drop view v1; drop table t1; # # VIEW over dropped function # create function x1 () returns int return 5; create table t1 (s1 int); create view v1 as select x1() from t1; drop function x1; -- error ER_VIEW_INVALID select * from v1; --replace_column 8 # 12 # 13 # show table status; drop view v1; drop table t1; # # VIEW with floating point (long number) as column # create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1; show create view v1; drop view v1; # # VIEWs with national characters # SET @old_cs_client = @@character_set_client; SET @old_cs_results = @@character_set_results; SET @old_cs_connection = @@character_set_connection; set names utf8; create table tĂ¼ (cĂ¼ char); create view vĂ¼ as select cĂ¼ from tĂ¼; insert into vĂ¼ values ('Ă¼'); select * from vĂ¼; drop view vĂ¼; drop table tĂ¼; SET character_set_client = @old_cs_client; SET character_set_results = @old_cs_results; SET character_set_connection = @old_cs_connection; # # problem with used_tables() of outer reference resolved in VIEW # create table t1 (a int, b int); insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10); create view v1(c) as select a+1 from t1 where b >= 4; select c from v1 where exists (select * from t1 where a=2 and b=c); drop view v1; drop table t1; # # view with cast operation # create view v1 as select cast(1 as char(3)); show create view v1; select * from v1; drop view v1; # # renaming views # create table t1 (a int); create view v1 as select a from t1; create view v3 as select a from t1; create database mysqltest; -- error ER_FORBID_SCHEMA_CHANGE rename table v1 to mysqltest.v1; rename table v1 to v2; --error ER_TABLE_EXISTS_ERROR rename table v3 to v1, v2 to t1; drop table t1; drop view v2,v3; drop database mysqltest; # # bug handling from VIEWs # create view v1 as select 'a',1; create view v2 as select * from v1 union all select * from v1; create view v3 as select * from v2 where 1 = (select `1` from v2); create view v4 as select * from v3; -- error ER_SUBQUERY_NO_1_ROW select * from v4; drop view v4, v3, v2, v1; # # VIEW over SELECT with prohibited clauses # -- error ER_VIEW_SELECT_CLAUSE create view v1 as select 5 into @w; -- error ER_VIEW_SELECT_CLAUSE create view v1 as select 5 into outfile 'ttt'; create table t1 (a int); -- error ER_VIEW_SELECT_CLAUSE create view v1 as select a from t1 procedure analyse(); create view v1 as select 1 from (select 1) as d1; drop view v1; drop table t1; # # INSERT into VIEW with ON DUPLICATE # create table t1 (s1 int, primary key (s1)); create view v1 as select * from t1; insert into v1 values (1) on duplicate key update s1 = 7; insert into v1 values (1) on duplicate key update s1 = 7; select * from t1; drop view v1; drop table t1; # # test of updating and fetching from the same table check # create table t1 (col1 int); create table t2 (col1 int); create table t3 (col1 datetime not null); create view v1 as select * from t1; create view v2 as select * from v1; create view v3 as select v2.col1 from v2,t2 where v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update v2 set col1 = (select max(col1) from v1); -- error ER_VIEW_PREVENT_UPDATE update v2 set col1 = (select max(col1) from t1); -- error ER_UPDATE_TABLE_USED update v2 set col1 = (select max(col1) from v2); -- error ER_VIEW_PREVENT_UPDATE update v2,t2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t1,t2 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update v1,t2 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,v2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,t1 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,v1 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update v2,t2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update v1,t2 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update t2,v2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update t2,t1 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update t2,v1 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED update v2,t2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t1,t2 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update v1,t2 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,v2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,t1 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update t2,v1 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE update v3 set v3.col1 = (select max(col1) from v1); -- error ER_VIEW_PREVENT_UPDATE update v3 set v3.col1 = (select max(col1) from t1); -- error ER_VIEW_PREVENT_UPDATE update v3 set v3.col1 = (select max(col1) from v2); -- error ER_UPDATE_TABLE_USED update v3 set v3.col1 = (select max(col1) from v3); -- error ER_VIEW_PREVENT_UPDATE delete from v2 where col1 = (select max(col1) from v1); -- error ER_VIEW_PREVENT_UPDATE delete from v2 where col1 = (select max(col1) from t1); -- error ER_UPDATE_TABLE_USED delete from v2 where col1 = (select max(col1) from v2); -- error ER_VIEW_PREVENT_UPDATE delete v2 from v2,t2 where (select max(col1) from v1) > 0 and v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE delete t1 from t1,t2 where (select max(col1) from v1) > 0 and t1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED delete v1 from v1,t2 where (select max(col1) from v1) > 0 and v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE delete v2 from v2,t2 where (select max(col1) from t1) > 0 and v2.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED delete t1 from t1,t2 where (select max(col1) from t1) > 0 and t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE delete v1 from v1,t2 where (select max(col1) from t1) > 0 and v1.col1 = t2.col1; -- error ER_UPDATE_TABLE_USED delete v2 from v2,t2 where (select max(col1) from v2) > 0 and v2.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE delete t1 from t1,t2 where (select max(col1) from v2) > 0 and t1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE delete v1 from v1,t2 where (select max(col1) from v2) > 0 and v1.col1 = t2.col1; -- error ER_VIEW_PREVENT_UPDATE insert into v2 values ((select max(col1) from v1)); -- error ER_VIEW_PREVENT_UPDATE insert into t1 values ((select max(col1) from v1)); -- error ER_VIEW_PREVENT_UPDATE insert into v2 values ((select max(col1) from v1)); -- error ER_VIEW_PREVENT_UPDATE insert into v2 values ((select max(col1) from t1)); -- error ER_UPDATE_TABLE_USED insert into t1 values ((select max(col1) from t1)); -- error ER_VIEW_PREVENT_UPDATE insert into v2 values ((select max(col1) from t1)); -- error ER_UPDATE_TABLE_USED insert into v2 values ((select max(col1) from v2)); -- error ER_VIEW_PREVENT_UPDATE insert into t1 values ((select max(col1) from v2)); -- error ER_UPDATE_TABLE_USED insert into v2 values ((select max(col1) from v2)); -- error ER_VIEW_PREVENT_UPDATE insert into v3 (col1) values ((select max(col1) from v1)); -- error ER_VIEW_PREVENT_UPDATE insert into v3 (col1) values ((select max(col1) from t1)); -- error ER_VIEW_PREVENT_UPDATE insert into v3 (col1) values ((select max(col1) from v2)); # check with TZ tables in list -- error ER_VIEW_PREVENT_UPDATE insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from v2)); insert into v3 (col1) values ((select CONVERT_TZ('20050101000000','UTC','MET') from t2)); -- error ER_BAD_NULL_ERROR insert into t3 values ((select CONVERT_TZ('20050101000000','UTC','MET') from t2)); # temporary table algorithm view should be equal to subquery in the from clause create algorithm=temptable view v4 as select * from t1; insert into t1 values (1),(2),(3); insert into t1 (col1) values ((select max(col1) from v4)); select * from t1; drop view v4,v3,v2,v1; drop table t1,t2,t3; # # HANDLER with VIEW # create table t1 (s1 int); create view v1 as select * from t1; -- error ER_WRONG_OBJECT handler v1 open as xx; drop view v1; drop table t1; # # view with WHERE in nested join # create table t1(a int); insert into t1 values (0), (1), (2), (3); create table t2 (a int); insert into t2 select a from t1 where a > 1; create view v1 as select a from t1 where a > 1; --sorted_result select * from t1 left join (t2 as t, v1) on v1.a=t1.a; --sorted_result select * from t1 left join (t2 as t, t2) on t2.a=t1.a; drop view v1; drop table t1, t2; # # Collation with view update # create table t1 (s1 char); create view v1 as select s1 collate latin1_german1_ci as s1 from t1; insert into v1 values ('a'); select * from v1; update v1 set s1='b'; select * from v1; update v1,t1 set v1.s1='c' where t1.s1=v1.s1; select * from v1; prepare stmt1 from "update v1,t1 set v1.s1=? where t1.s1=v1.s1"; set @arg='d'; execute stmt1 using @arg; select * from v1; set @arg='e'; execute stmt1 using @arg; select * from v1; deallocate prepare stmt1; drop view v1; drop table t1; # # test view with LOCK TABLES (work around) # create table t1 (a int); create table t2 (a int); create view v1 as select * from t1; lock tables t1 read, v1 read; select * from v1; -- error ER_TABLE_NOT_LOCKED select * from t2; unlock tables; drop view v1; drop table t1, t2; # # WITH CHECK OPTION insert/update test # create table t1 (a int); create view v1 as select * from t1 where a < 2 with check option; # simple insert insert into v1 values(1); -- error ER_VIEW_CHECK_FAILED insert into v1 values(3); # simple insert with ignore insert ignore into v1 values (2),(3),(0); select * from t1; # prepare data for next check delete from t1; # INSERT SELECT test insert into v1 SELECT 1; -- error ER_VIEW_CHECK_FAILED insert into v1 SELECT 3; # prepare data for next check create table t2 (a int); insert into t2 values (2),(3),(0); # INSERT SELECT with ignore test insert ignore into v1 SELECT a from t2; select * from t1 order by a desc; # simple UPDATE test update v1 set a=-1 where a=0; -- error ER_VIEW_CHECK_FAILED update v1 set a=2 where a=1; select * from t1 order by a desc; # prepare data for next check update v1 set a=0 where a=0; insert into t2 values (1); # multiupdate test update v1,t2 set v1.a=v1.a-1 where v1.a=t2.a; select * from t1 order by a desc; # prepare data for next check update v1 set a=a+1; # multiupdate with ignore test update ignore v1,t2 set v1.a=v1.a+1 where v1.a=t2.a; select * from t1; drop view v1; drop table t1, t2; # # CASCADED/LOCAL CHECK OPTION test # create table t1 (a int); create view v1 as select * from t1 where a < 2 with check option; create view v2 as select * from v1 where a > 0 with local check option; create view v3 as select * from v1 where a > 0 with cascaded check option; insert into v2 values (1); insert into v3 values (1); -- error ER_VIEW_CHECK_FAILED insert into v2 values (0); -- error ER_VIEW_CHECK_FAILED insert into v3 values (0); -- error ER_VIEW_CHECK_FAILED insert into v2 values (2); -- error ER_VIEW_CHECK_FAILED insert into v3 values (2); select * from t1; drop view v3,v2,v1; drop table t1; # # CHECK OPTION with INSERT ... ON DUPLICATE KEY UPDATE # create table t1 (a int, primary key (a)); create view v1 as select * from t1 where a < 2 with check option; insert into v1 values (1) on duplicate key update a=2; -- error ER_VIEW_CHECK_FAILED insert into v1 values (1) on duplicate key update a=2; insert ignore into v1 values (1) on duplicate key update a=2; select * from t1; drop view v1; drop table t1; # # check cyclic referencing protection on altering view # create table t1 (s1 int); create view v1 as select * from t1; create view v2 as select * from v1; -- error ER_NO_SUCH_TABLE alter view v1 as select * from v2; -- error ER_NO_SUCH_TABLE alter view v1 as select * from v1; -- error ER_NO_SUCH_TABLE create or replace view v1 as select * from v2; -- error ER_NO_SUCH_TABLE create or replace view v1 as select * from v1; drop view v2,v1; drop table t1; # # check altering differ options # create table t1 (a int); create view v1 as select * from t1; show create view v1; alter algorithm=undefined view v1 as select * from t1 with check option; show create view v1; alter algorithm=merge view v1 as select * from t1 with cascaded check option; show create view v1; alter algorithm=temptable view v1 as select * from t1; show create view v1; drop view v1; drop table t1; # # updating view with subquery in the WHERE clause # create table t1 (s1 int); create table t2 (s1 int); create view v2 as select * from t2 where s1 in (select s1 from t1); insert into v2 values (5); insert into t1 values (5); select * from v2; update v2 set s1 = 0; select * from v2; select * from t2; # check it with check option alter view v2 as select * from t2 where s1 in (select s1 from t1) with check option; insert into v2 values (5); -- error ER_VIEW_CHECK_FAILED update v2 set s1 = 1; insert into t1 values (1); update v2 set s1 = 1; select * from v2; select * from t2; # scheck how VIEWs with subqueries work with prepared statements prepare stmt1 from "select * from v2;"; execute stmt1; insert into t1 values (0); execute stmt1; deallocate prepare stmt1; drop view v2; drop table t1, t2; # # test of substring_index with view # create table t1 (t time); create view v1 as select substring_index(t,':',2) as t from t1; insert into t1 (t) values ('12:24:10'); select substring_index(t,':',2) from t1; select substring_index(t,':',2) from v1; drop view v1; drop table t1; # # test of cascaded check option for whiew without WHERE clause # create table t1 (s1 tinyint); create view v1 as select * from t1 where s1 <> 0 with local check option; create view v2 as select * from v1 with cascaded check option; -- error ER_VIEW_CHECK_FAILED insert into v2 values (0); drop view v2, v1; drop table t1; # # inserting single value with check option failed always get error # create table t1 (s1 int); create view v1 as select * from t1 where s1 < 5 with check option; #single value insert ignore into v1 values (6); #several values insert ignore into v1 values (6),(3); select * from t1; drop view v1; drop table t1; # # changing value by trigger and CHECK OPTION # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1 (s1 tinyint); create trigger t1_bi before insert on t1 for each row set new.s1 = 500; create view v1 as select * from t1 where s1 <> 127 with check option; -- error ER_VIEW_CHECK_FAILED insert into v1 values (0); select * from v1; select * from t1; drop trigger t1_bi; drop view v1; drop table t1; SET sql_mode = default; # # CASCADED should be used for all underlaying VIEWs # create table t1 (s1 tinyint); create view v1 as select * from t1 where s1 <> 0; create view v2 as select * from v1 where s1 <> 1 with cascaded check option; -- error ER_VIEW_CHECK_FAILED insert into v2 values (0); select * from v2; select * from t1; drop view v2, v1; drop table t1; # # LOAD DATA with view and CHECK OPTION # # fixed length fields create table t1 (a int, b char(10)); create view v1 as select * from t1 where a != 0 with check option; -- error ER_VIEW_CHECK_FAILED load data infile '../../std_data/loaddata3.dat' into table v1 fields terminated by '' enclosed by '' ignore 1 lines; select * from t1; select * from v1; delete from t1; load data infile '../../std_data/loaddata3.dat' ignore into table v1 fields terminated by '' enclosed by '' ignore 1 lines; select * from t1 order by a,b; select * from v1 order by a,b; drop view v1; drop table t1; # variable length fields create table t1 (a text, b text); create view v1 as select * from t1 where a <> 'Field A' with check option; -- error ER_VIEW_CHECK_FAILED load data infile '../../std_data/loaddata2.dat' into table v1 fields terminated by ',' enclosed by ''''; select concat('|',a,'|'), concat('|',b,'|') from t1; select concat('|',a,'|'), concat('|',b,'|') from v1; delete from t1; load data infile '../../std_data/loaddata2.dat' ignore into table v1 fields terminated by ',' enclosed by ''''; select concat('|',a,'|'), concat('|',b,'|') from t1; select concat('|',a,'|'), concat('|',b,'|') from v1; drop view v1; drop table t1; # # Trys update table from which we select using views and subqueries # create table t1 (s1 smallint); create view v1 as select * from t1 where 20 < (select (s1) from t1); -- error ER_NON_INSERTABLE_TABLE insert into v1 values (30); create view v2 as select * from t1; create view v3 as select * from t1 where 20 < (select (s1) from v2); -- error ER_NON_INSERTABLE_TABLE insert into v3 values (30); create view v4 as select * from v2 where 20 < (select (s1) from t1); -- error ER_NON_INSERTABLE_TABLE insert into v4 values (30); drop view v4, v3, v2, v1; drop table t1; # # CHECK TABLE with VIEW # create table t1 (a int); create view v1 as select * from t1; check table t1,v1; check table v1,t1; drop table t1; check table v1; drop view v1; # # merge of VIEW with several tables # create table t1 (a int); create table t2 (a int); create table t3 (a int); insert into t1 values (1), (2), (3); insert into t2 values (1), (3); insert into t3 values (1), (2), (4); # view over tables create view v3 (a,b) as select t1.a as a, t2.a as b from t1 left join t2 on (t1.a=t2.a); select * from t3 left join v3 on (t3.a = v3.a); explain extended select * from t3 left join v3 on (t3.a = v3.a); # view over views create view v1 (a) as select a from t1; create view v2 (a) as select a from t2; create view v4 (a,b) as select v1.a as a, v2.a as b from v1 left join v2 on (v1.a=v2.a); select * from t3 left join v4 on (t3.a = v4.a); explain extended select * from t3 left join v4 on (t3.a = v4.a); # PS with view over views prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);"; execute stmt1; execute stmt1; deallocate prepare stmt1; drop view v4,v3,v2,v1; drop tables t1,t2,t3; # # updating of join view # create table t1 (a int, primary key (a), b int); create table t2 (a int, primary key (a)); insert into t1 values (1,100), (2,200); insert into t2 values (1), (3); # legal view for update create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2; update v3 set a= 10 where a=1; select * from t1; select * from t2; # view without primary key create view v2 (a,b) as select t1.b as a, t2.a as b from t1, t2; set updatable_views_with_limit=NO; # different errors in PS / non-PS mode: -- error ER_NON_UPDATABLE_TABLE, ER_VIEW_PREVENT_UPDATE update v2 set a= 10 where a=200 limit 1; set updatable_views_with_limit=DEFAULT; # just view selects select * from v3; select * from v2; # prepare statement with updating join view set @a= 10; set @b= 100; prepare stmt1 from "update v3 set a= ? where a=?"; execute stmt1 using @a,@b; select * from v3; set @a= 300; set @b= 10; execute stmt1 using @a,@b; select * from v3; deallocate prepare stmt1; drop view v3,v2; drop tables t1,t2; # # inserting/deleting join view # create table t1 (a int, primary key (a), b int); create table t2 (a int, primary key (a), b int); insert into t2 values (1000, 2000); create view v3 (a,b) as select t1.a as a, t2.a as b from t1, t2; # inserting into join view without field list -- error ER_VIEW_NO_INSERT_FIELD_LIST insert into v3 values (1,2); -- error ER_VIEW_NO_INSERT_FIELD_LIST insert into v3 select * from t2; # inserting in several tables of join view -- error ER_VIEW_MULTIUPDATE insert into v3(a,b) values (1,2); -- error ER_VIEW_MULTIUPDATE insert into v3(a,b) select * from t2; # correct inserts into join view insert into v3(a) values (1); insert into v3(b) values (10); insert into v3(a) select a from t2; insert into v3(b) select b from t2; insert into v3(a) values (1) on duplicate key update a=a+10000+VALUES(a); select * from t1; select * from t2; # try delete from join view -- error ER_VIEW_DELETE_MERGE_VIEW delete from v3; -- error ER_VIEW_DELETE_MERGE_VIEW delete v3,t1 from v3,t1; -- error ER_VIEW_DELETE_MERGE_VIEW delete t1,v3 from t1,v3; # delete from t1 just to reduce result set size delete from t1; # prepare statement with insert join view prepare stmt1 from "insert into v3(a) values (?);"; set @a= 100; execute stmt1 using @a; set @a= 300; execute stmt1 using @a; deallocate prepare stmt1; prepare stmt1 from "insert into v3(a) select ?;"; set @a= 101; execute stmt1 using @a; set @a= 301; execute stmt1 using @a; deallocate prepare stmt1; select * from v3; drop view v3; drop tables t1,t2; # # View field names should be case insensitive # create table t1(f1 int); create view v1 as select f1 from t1; select * from v1 where F1 = 1; drop view v1; drop table t1; # # Resolving view fields in subqueries in VIEW (Bug#6394) # create table t1(c1 int); create table t2(c2 int); insert into t1 values (1),(2),(3); insert into t2 values (1); SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2); SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1); create view v1 as SELECT c1 FROM t1 WHERE c1 IN (SELECT c2 FROM t2); create view v2 as SELECT c1 FROM t1 WHERE EXISTS (SELECT c2 FROM t2 WHERE c2 = c1); select * from v1; select * from v2; select * from (select c1 from v2) X; drop view v2, v1; drop table t1, t2; # # view over other view setup (Bug#7433) # CREATE TABLE t1 (C1 INT, C2 INT); CREATE TABLE t2 (C2 INT); CREATE VIEW v1 AS SELECT C2 FROM t2; CREATE VIEW v2 AS SELECT C1 FROM t1 LEFT OUTER JOIN v1 USING (C2); SELECT * FROM v2; drop view v2, v1; drop table t1, t2; # # view and group_concat() (Bug#7116) # create table t1 (col1 char(5),col2 int,col3 int); insert into t1 values ('one',10,25), ('two',10,50), ('two',10,50), ('one',20,25), ('one',30,25); create view v1 as select * from t1; select col1,group_concat(col2,col3) from t1 group by col1; select col1,group_concat(col2,col3) from v1 group by col1; drop view v1; drop table t1; # # Item_ref resolved as view field (Bug#6894) # create table t1 (s1 int, s2 char); create view v1 as select s1, s2 from t1; -- error ER_BAD_FIELD_ERROR select s2 from v1 vq1 where 2 = (select count(*) from v1 vq2 having vq1.s2 = vq2.s2); select s2 from v1 vq1 where 2 = (select count(*) aa from v1 vq2 having vq1.s2 = aa); drop view v1; drop table t1; # # Test case for Bug#9398 CREATE TABLE with SELECT from a multi-table view # CREATE TABLE t1 (a1 int); CREATE TABLE t2 (a2 int); INSERT INTO t1 VALUES (1), (2), (3), (4); INSERT INTO t2 VALUES (1), (2), (3); CREATE VIEW v1(a,b) AS SELECT a1,a2 FROM t1 JOIN t2 ON a1=a2 WHERE a1>1; SELECT * FROM v1; CREATE TABLE t3 SELECT * FROM v1; SELECT * FROM t3; DROP VIEW v1; DROP TABLE t1,t2,t3; # # Test for Bug#8703 insert into table select from view crashes # create table t1 (a int); create table t2 like t1; create table t3 like t1; create view v1 as select t1.a x, t2.a y from t1 join t2 where t1.a=t2.a; insert into t3 select x from v1; insert into t2 select x from v1; drop view v1; drop table t1,t2,t3; # # Test for Bug#6106 query over a view using subquery for the underlying table # CREATE TABLE t1 (col1 int PRIMARY KEY, col2 varchar(10)); INSERT INTO t1 VALUES(1,'trudy'); INSERT INTO t1 VALUES(2,'peter'); INSERT INTO t1 VALUES(3,'sanja'); INSERT INTO t1 VALUES(4,'monty'); INSERT INTO t1 VALUES(5,'david'); INSERT INTO t1 VALUES(6,'kent'); INSERT INTO t1 VALUES(7,'carsten'); INSERT INTO t1 VALUES(8,'ranger'); INSERT INTO t1 VALUES(10,'matt'); CREATE TABLE t2 (col1 int, col2 int, col3 char(1)); INSERT INTO t2 VALUES (1,1,'y'); INSERT INTO t2 VALUES (1,2,'y'); INSERT INTO t2 VALUES (2,1,'n'); INSERT INTO t2 VALUES (3,1,'n'); INSERT INTO t2 VALUES (4,1,'y'); INSERT INTO t2 VALUES (4,2,'n'); INSERT INTO t2 VALUES (4,3,'n'); INSERT INTO t2 VALUES (6,1,'n'); INSERT INTO t2 VALUES (8,1,'y'); CREATE VIEW v1 AS SELECT * FROM t1; --sorted_result SELECT a.col1,a.col2,b.col2,b.col3 FROM t1 a LEFT JOIN t2 b ON a.col1=b.col1 WHERE b.col2 IS NULL OR b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1); --sorted_result SELECT a.col1,a.col2,b.col2,b.col3 FROM v1 a LEFT JOIN t2 b ON a.col1=b.col1 WHERE b.col2 IS NULL OR b.col2=(SELECT MAX(col2) FROM t2 b WHERE b.col1=a.col1); CREATE VIEW v2 AS SELECT * FROM t2; --sorted_result SELECT a.col1,a.col2,b.col2,b.col3 FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1 WHERE b.col2 IS NULL OR b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1); # Tests from the report for Bug#6107 SELECT a.col1,a.col2,b.col2,b.col3 FROM v2 b RIGHT JOIN v1 a ON a.col1=b.col1 WHERE a.col1 IN (1,5,9) AND (b.col2 IS NULL OR b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1)); CREATE VIEW v3 AS SELECT * FROM t1 WHERE col1 IN (1,5,9); SELECT a.col1,a.col2,b.col2,b.col3 FROM v2 b RIGHT JOIN v3 a ON a.col1=b.col1 WHERE b.col2 IS NULL OR b.col2=(SELECT MAX(col2) FROM v2 b WHERE b.col1=a.col1); DROP VIEW v1,v2,v3; DROP TABLE t1,t2; # # Bug#8490 Select from views containing subqueries causes server to hang # forever. # create table t1 as select 1 A union select 2 union select 3; create table t2 as select * from t1; create view v1 as select * from t1 where a in (select * from t2); select * from v1 A, v1 B where A.a = B.a; create table t3 as select a a,a b from t2; create view v2 as select * from t3 where a in (select * from t1) or b in (select * from t2); select * from v2 A, v2 B where A.a = B.b; drop view v1, v2; drop table t1, t2, t3; # # Test case for Bug#8528 select from view over multi-table view # CREATE TABLE t1 (a int); CREATE TABLE t2 (b int); INSERT INTO t1 VALUES (1), (2), (3), (4); INSERT INTO t2 VALUES (4), (2); CREATE VIEW v1 AS SELECT * FROM t1,t2 WHERE t1.a=t2.b; SELECT * FROM v1; CREATE VIEW v2 AS SELECT * FROM v1; SELECT * FROM v2; DROP VIEW v2,v1; DROP TABLE t1, t2; # # Correct restoring view name in SP table locking Bug#9758 # create table t1 (a int); create view v1 as select sum(a) from t1 group by a; delimiter //; create procedure p1() begin select * from v1; end// delimiter ;// call p1(); call p1(); drop procedure p1; drop view v1; drop table t1; # # Bug#7422 "order by" doesn't work # CREATE TABLE t1(a char(2) primary key, b char(2)); CREATE TABLE t2(a char(2), b char(2), index i(a)); INSERT INTO t1 VALUES ('a','1'), ('b','2'); INSERT INTO t2 VALUES ('a','5'), ('a','6'), ('b','5'), ('b','6'); CREATE VIEW v1 AS SELECT t1.b as c, t2.b as d FROM t1,t2 WHERE t1.a=t2.a; SELECT d, c FROM v1 ORDER BY d,c; DROP VIEW v1; DROP TABLE t1, t2; # # using sum(distinct ) & avg(distinct ) in views (Bug#7015) # create table t1 (s1 int); create view v1 as select sum(distinct s1) from t1; select * from v1; drop view v1; create view v1 as select avg(distinct s1) from t1; select * from v1; drop view v1; drop table t1; # # using cast(... as decimal) in views (Bug#11387); # create view v1 as select cast(1 as decimal); select * from v1; drop view v1; # # Bug#11298 insert into select from VIEW produces incorrect result when # using ORDER BY create table t1(f1 int); create table t2(f2 int); insert into t1 values(1),(2),(3); insert into t2 values(1),(2),(3); create view v1 as select * from t1,t2 where f1=f2; create table t3 (f1 int, f2 int); insert into t3 select * from v1 order by 1; select * from t3; drop view v1; drop table t1,t2,t3; # # Generation unique names for columns, and correct names check (Bug#7448) # # names with ' and \ create view v1 as select '\\','\\shazam'; select * from v1; drop view v1; create view v1 as select '\'','\shazam'; select * from v1; drop view v1; # autogenerated names differ by case only create view v1 as select 'k','K'; select * from v1; drop view v1; create table t1 (s1 int); # same autogenerated names create view v1 as select s1, 's1' from t1; select * from v1; drop view v1; create view v1 as select 's1', s1 from t1; select * from v1; drop view v1; # set name as one of expected autogenerated create view v1 as select 's1', s1, 1 as My_exp_s1 from t1; select * from v1; drop view v1; create view v1 as select 1 as My_exp_s1, 's1', s1 from t1; select * from v1; drop view v1; # set name conflict with autogenerated names create view v1 as select 1 as s1, 's1', 's1' from t1; select * from v1; drop view v1; create view v1 as select 's1', 's1', 1 as s1 from t1; select * from v1; drop view v1; # underlying field name conflict with autogenerated names create view v1 as select s1, 's1', 's1' from t1; select * from v1; drop view v1; create view v1 as select 's1', 's1', s1 from t1; select * from v1; drop view v1; # underlying field name conflict with set name -- error ER_DUP_FIELDNAME create view v1 as select 1 as s1, 's1', s1 from t1; -- error ER_DUP_FIELDNAME create view v1 as select 's1', s1, 1 as s1 from t1; drop table t1; # set names differ by case only -- error ER_DUP_FIELDNAME create view v1(k, K) as select 1,2; # # using time_format in view (Bug#7521) # create view v1 as SELECT TIME_FORMAT(SEC_TO_TIME(3600),'%H:%i') as t; select * from v1; drop view v1; # # evaluation constant functions in WHERE (Bug#4663) # create table t1 (a timestamp default now()); create table t2 (b timestamp default now()); create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now(); SHOW CREATE VIEW v1; drop view v1; drop table t1, t2; CREATE TABLE t1 ( a varchar(50) ); CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER(); SHOW CREATE VIEW v1; DROP VIEW v1; CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION(); SHOW CREATE VIEW v1; DROP VIEW v1; CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE(); SHOW CREATE VIEW v1; DROP VIEW v1; DROP TABLE t1; # # checking views after some view with error (Bug#11337) # CREATE TABLE t1 (col1 time); CREATE TABLE t2 (col1 time); CREATE VIEW v1 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1; CREATE VIEW v2 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2; CREATE VIEW v3 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1; CREATE VIEW v4 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2; CREATE VIEW v5 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1; CREATE VIEW v6 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t2; DROP TABLE t1; CHECK TABLE v1, v2, v3, v4, v5, v6; drop view v1, v2, v3, v4, v5, v6; drop table t2; --disable_warnings drop function if exists f1; drop function if exists f2; --enable_warnings CREATE TABLE t1 (col1 time); CREATE TABLE t2 (col1 time); CREATE TABLE t3 (col1 time); create function f1 () returns int return (select max(col1) from t1); create function f2 () returns int return (select max(col1) from t2); CREATE VIEW v1 AS SELECT f1() FROM t3; CREATE VIEW v2 AS SELECT f2() FROM t3; CREATE VIEW v3 AS SELECT f1() FROM t3; CREATE VIEW v4 AS SELECT f2() FROM t3; CREATE VIEW v5 AS SELECT f1() FROM t3; CREATE VIEW v6 AS SELECT f2() FROM t3; drop function f1; CHECK TABLE v1, v2, v3, v4, v5, v6; create function f1 () returns int return (select max(col1) from t1); DROP TABLE t1; CHECK TABLE v1, v2, v3, v4, v5, v6; drop function f1; drop function f2; drop view v1, v2, v3, v4, v5, v6; drop table t2,t3; # # Bug#11325 Wrong date comparison in views # create table t1 (f1 date); insert into t1 values ('2005-01-01'),('2005-02-02'); create view v1 as select * from t1; select * from v1 where f1='2005.02.02'; select * from v1 where '2005.02.02'=f1; drop view v1; drop table t1; # # using encrypt & substring_index in view (Bug#7024) # CREATE VIEW v1 AS SELECT ENCRYPT("dhgdhgd"); disable_result_log; SELECT * FROM v1; enable_result_log; drop view v1; CREATE VIEW v1 AS SELECT SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1); SELECT * FROM v1; drop view v1; # # hide underlying tables names in case of imposibility to update (Bug#10773) # create table t1 (f59 int, f60 int, f61 int); insert into t1 values (19,41,32); create view v1 as select f59, f60 from t1 where f59 in (select f59 from t1); -- error ER_NON_UPDATABLE_TABLE update v1 set f60=2345; -- error ER_VIEW_PREVENT_UPDATE update t1 set f60=(select max(f60) from v1); drop view v1; drop table t1; # # Using var_samp with view (Bug#10651) # create table t1 (s1 int); create view v1 as select var_samp(s1) from t1; show create view v1; drop view v1; drop table t1; # # Correct inserting data check (absence of default value) for view # underlying tables (Bug#6443) # CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL); CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1; CREATE VIEW v2 (vcol1) AS SELECT col1 FROM t1 WHERE col2 > 2; -- error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t1 (col1) VALUES(12); -- error ER_NO_DEFAULT_FOR_VIEW_FIELD INSERT INTO v1 (vcol1) VALUES(12); -- error ER_NO_DEFAULT_FOR_VIEW_FIELD INSERT INTO v2 (vcol1) VALUES(12); drop view v2,v1; drop table t1; # # Bug#11399 Use an alias in a select statement on a view # create table t1 (f1 int); insert into t1 values (1); create view v1 as select f1 from t1; select f1 as alias from v1; drop view v1; drop table t1; # # Test for Bug#6120 SP cache to be invalidated when altering a view # CREATE TABLE t1 (s1 int, s2 int); INSERT INTO t1 VALUES (1,2); CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1; SELECT * FROM v1; CREATE PROCEDURE p1 () SELECT * FROM v1; CALL p1(); ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1; CALL p1(); DROP VIEW v1; CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1; CALL p1(); DROP PROCEDURE p1; DROP VIEW v1; DROP TABLE t1; # # Test for Bug#11709 View was ordered by wrong column # create table t1 (f1 int, f2 int); create view v1 as select f1 as f3, f2 as f1 from t1; insert into t1 values (1,3),(2,1),(3,2); select * from v1 order by f1; drop view v1; drop table t1; # # Test for Bug#11771 wrong query_id in SELECT * FROM <view> # CREATE TABLE t1 (f1 char); INSERT INTO t1 VALUES ('A'); CREATE VIEW v1 AS SELECT * FROM t1; INSERT INTO t1 VALUES('B'); SELECT * FROM v1; SELECT * FROM t1; DROP VIEW v1; DROP TABLE t1; # # opening table in correct locking mode (Bug#9597) # CREATE TABLE t1 ( bug_table_seq INTEGER NOT NULL); CREATE OR REPLACE VIEW v1 AS SELECT * from t1; DROP PROCEDURE IF EXISTS p1; delimiter //; CREATE PROCEDURE p1 ( ) BEGIN DO (SELECT @next := IFNULL(max(bug_table_seq),0) + 1 FROM v1); INSERT INTO t1 VALUES (1); END // delimiter ;// CALL p1(); DROP PROCEDURE p1; DROP VIEW v1; DROP TABLE t1; # # Bug#11760 Typo in Item_func_add_time::print() results in NULLs returned # subtime() in view create table t1(f1 datetime); insert into t1 values('2005.01.01 12:0:0'); create view v1 as select f1, subtime(f1, '1:1:1') as sb from t1; select * from v1; drop view v1; drop table t1; # # Test for Bug#11412 query over a multitable view with GROUP_CONCAT # CREATE TABLE t1 ( aid int PRIMARY KEY, fn varchar(20) NOT NULL, ln varchar(20) NOT NULL ); CREATE TABLE t2 ( aid int NOT NULL, pid int NOT NULL ); INSERT INTO t1 VALUES(1,'a','b'), (2,'c','d'); INSERT INTO t2 values (1,1), (2,1), (2,2); CREATE VIEW v1 AS SELECT t1.*,t2.pid FROM t1,t2 WHERE t1.aid = t2.aid; SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM t1,t2 WHERE t1.aid = t2.aid GROUP BY pid; SELECT pid,GROUP_CONCAT(CONCAT(fn,' ',ln) ORDER BY 1) FROM v1 GROUP BY pid; DROP VIEW v1; DROP TABLE t1,t2; # # Test for Bug#12382 SELECT * FROM view after INSERT command # CREATE TABLE t1 (id int PRIMARY KEY, f varchar(255)); CREATE VIEW v1 AS SELECT id, f FROM t1 WHERE id <= 2; INSERT INTO t1 VALUES (2, 'foo2'); INSERT INTO t1 VALUES (1, 'foo1'); --sorted_result SELECT * FROM v1; --sorted_result SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; # # Test for Bug#12470 crash for a simple select from a view defined # as a join over 5 tables CREATE TABLE t1 (pk int PRIMARY KEY, b int); CREATE TABLE t2 (pk int PRIMARY KEY, fk int, INDEX idx(fk)); CREATE TABLE t3 (pk int PRIMARY KEY, fk int, INDEX idx(fk)); CREATE TABLE t4 (pk int PRIMARY KEY, fk int, INDEX idx(fk)); CREATE TABLE t5 (pk int PRIMARY KEY, fk int, INDEX idx(fk)); CREATE VIEW v1 AS SELECT t1.pk as a FROM t1,t2,t3,t4,t5 WHERE t1.b IS NULL AND t1.pk=t2.fk AND t2.pk=t3.fk AND t3.pk=t4.fk AND t4.pk=t5.fk; SELECT a FROM v1; DROP VIEW v1; DROP TABLE t1,t2,t3,t4,t5; # # Bug#12298 Typo in function name results in erroneous view being created. # create view v1 as select timestampdiff(day,'1997-01-01 00:00:00','1997-01-02 00:00:00') as f1; select * from v1; drop view v1; # # repeatable CREATE VIEW statement Bug#12468 # create table t1(a int); create procedure p1() create view v1 as select * from t1; drop table t1; -- error ER_NO_SUCH_TABLE call p1(); -- error ER_NO_SUCH_TABLE call p1(); drop procedure p1; # # Bug#10624 Views with multiple UNION and UNION ALL produce incorrect results # create table t1 (f1 int); create table t2 (f1 int); insert into t1 values (1); insert into t2 values (2); create view v1 as select * from t1 union select * from t2 union all select * from t2; select * from v1; drop view v1; drop table t1,t2; # # Test for Bug#10970 view referring a temporary table indirectly # CREATE TEMPORARY TABLE t1 (a int); CREATE FUNCTION f1 () RETURNS int RETURN (SELECT COUNT(*) FROM t1); -- error ER_VIEW_SELECT_TMPTABLE CREATE VIEW v1 AS SELECT f1(); DROP FUNCTION f1; DROP TABLE t1; # # Bug#12533 (crash on DESCRIBE <view> after renaming base table column) # --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; --enable_warnings CREATE TABLE t1 (f4 CHAR(5)); CREATE VIEW v1 AS SELECT * FROM t1; DESCRIBE v1; ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5); --error ER_VIEW_INVALID DESCRIBE v1; DROP TABLE t1; DROP VIEW v1; # # Bug#12489 wrongly printed strcmp() function results in creation of broken # view create table t1 (f1 char); create view v1 as select strcmp(f1,'a') from t1; select * from v1; drop view v1; drop table t1; # # Bug#12922 if(sum(),...) with group from view returns wrong results # create table t1 (f1 int, f2 int,f3 int); insert into t1 values (1,10,20),(2,0,0); create view v1 as select * from t1; --source include/turn_off_only_full_group_by.inc select if(sum(f1)>1,f2,f3) from v1 group by f1; --source include/restore_sql_mode_after_turn_off_only_full_group_by.inc drop view v1; drop table t1; # Bug#12941 # --disable_warnings create table t1 ( r_object_id char(16) NOT NULL, group_name varchar(32) NOT NULL ) engine = InnoDB; create table t2 ( r_object_id char(16) NOT NULL, i_position int(11) NOT NULL, users_names varchar(32) default NULL ) Engine = InnoDB; --enable_warnings create view v1 as select r_object_id, group_name from t1; create view v2 as select r_object_id, i_position, users_names from t2; create unique index r_object_id on t1(r_object_id); create index group_name on t1(group_name); create unique index r_object_id_i_position on t2(r_object_id,i_position); create index users_names on t2(users_names); insert into t1 values('120001a080000542','tstgroup1'); insert into t2 values('120001a080000542',-1, 'guser01'); insert into t2 values('120001a080000542',-2, 'guser02'); select v1.r_object_id, v2.users_names from v1, v2 where (v1.group_name='tstgroup1') and v2.r_object_id=v1.r_object_id order by users_names; drop view v1, v2; drop table t1, t2; # # Bug#6808 Views: CREATE VIEW v ... FROM t AS v fails # create table t1 (s1 int); create view abc as select * from t1 as abc; drop table t1; drop view abc; # # Bug#12993 View column rename broken in subselect # create table t1(f1 char(1)); create view v1 as select * from t1; select * from (select f1 as f2 from v1) v where v.f2='a'; drop view v1; drop table t1; # # Bug#11416 Server crash if using a view that uses function convert_tz # create view v1 as SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET'); select * from v1; drop view v1; # # Bugs#12963, #13000 wrong creation of VIEW with DAYNAME, DAYOFWEEK, and WEEKDAY # CREATE TABLE t1 (date DATE NOT NULL); INSERT INTO t1 VALUES ('2005-09-06'); CREATE VIEW v1 AS SELECT DAYNAME(date) FROM t1; SHOW CREATE VIEW v1; CREATE VIEW v2 AS SELECT DAYOFWEEK(date) FROM t1; SHOW CREATE VIEW v2; CREATE VIEW v3 AS SELECT WEEKDAY(date) FROM t1; SHOW CREATE VIEW v3; SELECT DAYNAME('2005-09-06'); SELECT DAYNAME(date) FROM t1; SELECT * FROM v1; SELECT DAYOFWEEK('2005-09-06'); SELECT DAYOFWEEK(date) FROM t1; SELECT * FROM v2; SELECT WEEKDAY('2005-09-06'); SELECT WEEKDAY(date) FROM t1; SELECT * FROM v3; DROP TABLE t1; DROP VIEW v1, v2, v3; # # Bug#13411 crash when using non-qualified view column in HAVING clause # CREATE TABLE t1 ( a int, b int ); INSERT INTO t1 VALUES (1,1),(2,2),(3,3); CREATE VIEW v1 AS SELECT a,b FROM t1; SELECT t1.a FROM t1 GROUP BY t1.a HAVING a > 1; SELECT v1.a FROM v1 GROUP BY v1.a HAVING a > 1; DROP VIEW v1; DROP TABLE t1; # # Bug#13410 failed name resolution for qualified view column in HAVING # CREATE TABLE t1 ( a int, b int ); INSERT INTO t1 VALUES (1,1),(2,2),(3,3); CREATE VIEW v1 AS SELECT a,b FROM t1; SELECT t1.a FROM t1 GROUP BY t1.a HAVING t1.a > 1; SELECT v1.a FROM v1 GROUP BY v1.a HAVING v1.a > 1; SELECT t_1.a FROM t1 AS t_1 GROUP BY t_1.a HAVING t_1.a IN (1,2,3); SELECT v_1.a FROM v1 AS v_1 GROUP BY v_1.a HAVING v_1.a IN (1,2,3); DROP VIEW v1; DROP TABLE t1; # # Bug#13327 view wasn't using index for const condition # CREATE TABLE t1 (a INT, b INT, INDEX(a,b)); CREATE TABLE t2 LIKE t1; CREATE TABLE t3 (a INT); INSERT INTO t1 VALUES (1,1),(2,2),(3,3); INSERT INTO t2 VALUES (1,1),(2,2),(3,3); INSERT INTO t3 VALUES (1),(2),(3); CREATE VIEW v1 AS SELECT t1.* FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b; CREATE VIEW v2 AS SELECT t3.* FROM t1,t3 WHERE t1.a=t3.a; EXPLAIN SELECT t1.* FROM t1 JOIN t2 WHERE t1.a=t2.a AND t1.b=t2.b AND t1.a=1; EXPLAIN SELECT * FROM v1 WHERE a=1; EXPLAIN SELECT * FROM v2 WHERE a=1; DROP VIEW v1,v2; DROP TABLE t1,t2,t3; # # Bug#13622 Wrong view .frm created if some field's alias contain \n # create table t1 (f1 int); create view v1 as select t1.f1 as '123 456' from t1; select * from v1; drop view v1; drop table t1; # Bug#14466 lost sort order in GROUP_CONCAT() in a view # create table t1 (f1 int, f2 int); insert into t1 values(1,1),(1,2),(1,3); create view v1 as select f1 ,group_concat(f2 order by f2 asc) from t1 group by f1; create view v2 as select f1 ,group_concat(f2 order by f2 desc) from t1 group by f1; select * from v1; select * from v2; drop view v1,v2; drop table t1; # # Bug#14026 Crash on second PS execution when using views # create table t1 (x int, y int); create table t2 (x int, y int, z int); create table t3 (x int, y int, z int); create table t4 (x int, y int, z int); create view v1 as select t1.x from ( (t1 join t2 on ((t1.y = t2.y))) join (t3 left join t4 on (t3.y = t4.y) and (t3.z = t4.z)) ); prepare stmt1 from "select count(*) from v1 where x = ?"; set @parm1=1; execute stmt1 using @parm1; execute stmt1 using @parm1; drop view v1; drop table t1,t2,t3,t4; # # Bug#14540 OPTIMIZE, ANALYZE, REPAIR applied to not a view # CREATE TABLE t1(id INT); CREATE VIEW v1 AS SELECT id FROM t1; OPTIMIZE TABLE v1; ANALYZE TABLE v1; REPAIR TABLE v1; DROP TABLE t1; OPTIMIZE TABLE v1; ANALYZE TABLE v1; REPAIR TABLE v1; DROP VIEW v1; # # Bug#14719 Views DEFINER grammar is incorrect # create definer = current_user() sql security invoker view v1 as select 1; show create view v1; drop view v1; create definer = current_user sql security invoker view v1 as select 1; show create view v1; drop view v1; # # Bug#14816 test_if_order_by_key() expected only Item_fields. # create table t1 (id INT, primary key(id)); insert into t1 values (1),(2); create view v1 as select * from t1; explain select id from v1 order by id; drop view v1; drop table t1; # # Bug#14850 Item_ref's values wasn't updated # create table t1(f1 int, f2 int); insert into t1 values (null, 10), (null,2); select f1, sum(f2) from t1 group by f1; create view v1 as select * from t1; select f1, sum(f2) from v1 group by f1; drop view v1; drop table t1; # # Bug#14885 incorrect SOURCE in view created in a procedure # TODO: here SOURCE string must be shown when it will be possible # --disable_warnings drop procedure if exists p1; --enable_warnings delimiter //; create procedure p1 () deterministic begin create view v1 as select 1; end; // delimiter ;// call p1(); show create view v1; drop view v1; drop procedure p1; # # Bug#15096 using function with view for view creation # CREATE VIEW v1 AS SELECT 42 AS Meaning; --disable_warnings DROP FUNCTION IF EXISTS f1; --enable_warnings DELIMITER //; CREATE FUNCTION f1() RETURNS INTEGER BEGIN DECLARE retn INTEGER; SELECT Meaning FROM v1 INTO retn; RETURN retn; END // DELIMITER ;// CREATE VIEW v2 AS SELECT f1(); select * from v2; drop view v2,v1; drop function f1; # # Bug#14861 aliased column names are not preserved. # create table t1 (id numeric, warehouse_id numeric); create view v1 as select id from t1; create view v2 as select t1.warehouse_id, v1.id as receipt_id from t1, v1 where t1.id = v1.id; insert into t1 (id, warehouse_id) values(3, 2); insert into t1 (id, warehouse_id) values(4, 2); insert into t1 (id, warehouse_id) values(5, 1); select v2.receipt_id as alias1, v2.receipt_id as alias2 from v2 order by v2.receipt_id; drop view v2, v1; drop table t1; # # Bug#16016 MIN/MAX optimization for views # CREATE TABLE t1 (a int PRIMARY KEY, b int); INSERT INTO t1 VALUES (2,20), (3,10), (1,10), (0,30), (5,10); CREATE VIEW v1 AS SELECT * FROM t1; SELECT MAX(a) FROM t1; SELECT MAX(a) FROM v1; EXPLAIN SELECT MAX(a) FROM t1; EXPLAIN SELECT MAX(a) FROM v1; SELECT MIN(a) FROM t1; SELECT MIN(a) FROM v1; EXPLAIN SELECT MIN(a) FROM t1; EXPLAIN SELECT MIN(a) FROM v1; DROP VIEW v1; DROP TABLE t1; # # Bug#16382 grouping name is resolved against a view column name # which coincides with a select column name CREATE TABLE t1 (x varchar(10)); INSERT INTO t1 VALUES (null), ('foo'), ('bar'), (null); CREATE VIEW v1 AS SELECT * FROM t1; SELECT IF(x IS NULL, 'blank', 'not blank') FROM v1 GROUP BY x; SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM t1 GROUP BY x; SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1; SELECT IF(x IS NULL, 'blank', 'not blank') AS y FROM v1 GROUP BY y; SELECT IF(x IS NULL, 'blank', 'not blank') AS x FROM v1 GROUP BY x; DROP VIEW v1; DROP TABLE t1; # # Bug#15943 mysql_next_result hangs on invalid SHOW CREATE VIEW # delimiter //; drop table if exists t1; drop view if exists v1; create table t1 (id int); create view v1 as select * from t1; drop table t1; show create view v1; drop view v1; // delimiter ;// # # Bug#17726 Not checked empty list caused endless loop # create table t1(f1 int, f2 int); create view v1 as select ta.f1 as a, tb.f1 as b from t1 ta, t1 tb where ta.f1=tb .f1 and ta.f2=tb.f2; insert into t1 values(1,1),(2,2); create view v2 as select * from v1 where a > 1 with local check option; select * from v2; update v2 set b=3 where a=2; select * from v2; drop view v2, v1; drop table t1; # # Bug#18386 select from view over a table with ORDER BY view_col clause # given view_col is not an image of any column from the base table CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (1), (2); CREATE VIEW v1 AS SELECT SQRT(a) my_sqrt FROM t1; SELECT my_sqrt FROM v1 ORDER BY my_sqrt; DROP VIEW v1; DROP TABLE t1; # # Bug#18237 invalid count optimization applied to an outer join with a view # CREATE TABLE t1 (id int PRIMARY KEY); CREATE TABLE t2 (id int PRIMARY KEY); INSERT INTO t1 VALUES (1), (3); INSERT INTO t2 VALUES (1), (2), (3); CREATE VIEW v2 AS SELECT * FROM t2; SELECT COUNT(*) FROM t1 LEFT JOIN t2 ON t1.id=t2.id; SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id; SELECT COUNT(*) FROM t1 LEFT JOIN v2 ON t1.id=v2.id; DROP VIEW v2; DROP TABLE t1, t2; # # Bug#16069 VIEW does return the same results as underlying SELECT # with WHERE condition containing BETWEEN over dates # Dates as strings should be casted to date type CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, td date DEFAULT NULL, KEY idx(td)); INSERT INTO t1 VALUES (1, '2005-01-01'), (2, '2005-01-02'), (3, '2005-01-02'), (4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'), (7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06'); CREATE VIEW v1 AS SELECT * FROM t1; SELECT * FROM t1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE); SELECT * FROM v1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE); DROP VIEW v1; DROP TABLE t1; # # Bug#14308 Recursive view definitions # # using view only create table t1 (a int); create view v1 as select * from t1; create view v2 as select * from v1; drop table t1; rename table v2 to t1; -- error ER_VIEW_RECURSIVE select * from v1; drop view t1, v1; # using SP function create table t1 (a int); delimiter //; create function f1() returns int begin declare mx int; select max(a) from t1 into mx; return mx; end// delimiter ;// create view v1 as select f1() as a; create view v2 as select * from v1; drop table t1; rename table v2 to t1; -- error ER_SP_NO_RECURSION select * from v1; drop function f1; drop view t1, v1; # # Bug#15153 CONVERT_TZ() is not allowed in all places in VIEWs # # Error was reported when one tried to use CONVERT_TZ() function # select list of view which was processed using MERGE algorithm. # (Also see additional test in timezone_grant.test) create table t1 (dt datetime); insert into t1 values (20040101000000), (20050101000000), (20060101000000); # Let us test that convert_tz() can be used in view's select list create view v1 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from t1; select * from v1; drop view v1; # And in its where part create view v1 as select * from t1 where convert_tz(dt, 'UTC', 'Europe/Moscow') >= 20050101000000; select * from v1; # Other interesting case - a view which uses convert_tz() function # through other view. create view v2 as select * from v1 where dt < 20060101000000; select * from v2; drop view v2; # And even more interesting case when view uses convert_tz() both # directly and indirectly create view v2 as select convert_tz(dt, 'UTC', 'Europe/Moscow') as ldt from v1; select * from v2; drop view v1, v2; drop table t1; # # Bug#19490 usage of view specified by a query with GROUP BY # an expression containing non-constant interval CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, d datetime); CREATE VIEW v1 AS SELECT id, date(d) + INTERVAL TIME_TO_SEC(d) SECOND AS t, COUNT(*) FROM t1 GROUP BY id, t; SHOW CREATE VIEW v1; SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; # # Bug#19077 A nested materialized view is used before being populated. # CREATE TABLE t1 (i INT, j BIGINT); INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2); CREATE VIEW v1 AS SELECT MIN(j) AS j FROM t1; CREATE VIEW v2 AS SELECT MIN(i) FROM t1 WHERE j = ( SELECT * FROM v1 ); SELECT * FROM v2; DROP VIEW v2, v1; DROP TABLE t1; # # Bug#19573 VIEW with HAVING that refers an alias name # CREATE TABLE t1( fName varchar(25) NOT NULL, lName varchar(25) NOT NULL, DOB date NOT NULL, test_date date NOT NULL, uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY); INSERT INTO t1(fName, lName, DOB, test_date) VALUES ('Hank', 'Hill', '1964-09-29', '2007-01-01'), ('Tom', 'Adams', '1908-02-14', '2007-01-01'), ('Homer', 'Simpson', '1968-03-05', '2007-01-01'); CREATE VIEW v1 AS SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75; SHOW CREATE VIEW v1; SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75; SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; # # Bug#19089 wrong inherited dafault values in temp table views # CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx'); INSERT INTO t1(id) VALUES (1), (2), (3), (4); INSERT INTO t1 VALUES (5,'yyy'), (6,'yyy'); SELECT * FROM t1; CREATE VIEW v1(a, m) AS SELECT a, MIN(id) FROM t1 GROUP BY a; SELECT * FROM v1; CREATE TABLE t2 SELECT * FROM v1; INSERT INTO t2(m) VALUES (0); SELECT * FROM t2; DROP VIEW v1; DROP TABLE t1,t2; CREATE TABLE t1 (id int PRIMARY KEY, e ENUM('a','b') NOT NULL DEFAULT 'b'); INSERT INTO t1(id) VALUES (1), (2), (3); INSERT INTO t1 VALUES (4,'a'); SELECT * FROM t1; CREATE VIEW v1(m, e) AS SELECT MIN(id), e FROM t1 GROUP BY e; CREATE TABLE t2 SELECT * FROM v1; SELECT * FROM t2; DROP VIEW v1; DROP TABLE t1,t2; # # Bug#16110 insert permitted into view col w/o default value # CREATE TABLE t1 (a INT NOT NULL, b INT NULL DEFAULT NULL); CREATE VIEW v1 AS SELECT a, b FROM t1; INSERT IGNORE INTO v1 (b) VALUES (2); SET SQL_MODE = STRICT_ALL_TABLES; --error ER_NO_DEFAULT_FOR_VIEW_FIELD INSERT INTO v1 (b) VALUES (4); SET SQL_MODE = ''; SELECT * FROM t1; DROP VIEW v1; DROP TABLE t1; # # Bug#18243 expression over a view column that with the REVERSE function # CREATE TABLE t1 (firstname text, surname text); INSERT INTO t1 VALUES ("Bart","Simpson"),("Milhouse","van Houten"),("Montgomery","Burns"); CREATE VIEW v1 AS SELECT CONCAT(firstname," ",surname) AS name FROM t1; SELECT CONCAT(LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," ")), LEFT(name,LENGTH(name)-INSTR(REVERSE(name)," "))) AS f1 FROM v1; DROP VIEW v1; DROP TABLE t1; # # Bug#19714 wrong type of a view column specified by an expressions over ints # CREATE TABLE t1 (i int, j int); CREATE VIEW v1 AS SELECT COALESCE(i,j) FROM t1; DESCRIBE v1; CREATE TABLE t2 SELECT COALESCE(i,j) FROM t1; DESCRIBE t2; DROP VIEW v1; DROP TABLE t1,t2; # # Bug#17526 views with TRIM functions # CREATE TABLE t1 (s varchar(10)); INSERT INTO t1 VALUES ('yadda'), ('yady'); SELECT TRIM(BOTH 'y' FROM s) FROM t1; CREATE VIEW v1 AS SELECT TRIM(BOTH 'y' FROM s) FROM t1; SELECT * FROM v1; DROP VIEW v1; SELECT TRIM(LEADING 'y' FROM s) FROM t1; CREATE VIEW v1 AS SELECT TRIM(LEADING 'y' FROM s) FROM t1; SELECT * FROM v1; DROP VIEW v1; SELECT TRIM(TRAILING 'y' FROM s) FROM t1; CREATE VIEW v1 AS SELECT TRIM(TRAILING 'y' FROM s) FROM t1; SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; # # Bug#21080 ALTER VIEW makes user restate SQL SECURITY mode, and ALGORITHM # CREATE TABLE t1 (x INT, y INT); CREATE ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1; SHOW CREATE VIEW v1; ALTER VIEW v1 AS SELECT x, y FROM t1; SHOW CREATE VIEW v1; DROP VIEW v1; DROP TABLE t1; # Bug#21086 server crashes when VIEW defined with a SELECT with COLLATE # clause is called # CREATE TABLE t1 (s1 char); INSERT INTO t1 VALUES ('Z'); CREATE VIEW v1 AS SELECT s1 collate latin1_german1_ci AS col FROM t1; CREATE VIEW v2 (col) AS SELECT s1 collate latin1_german1_ci FROM t1; # either of these statements will cause crash INSERT INTO v1 (col) VALUES ('b'); INSERT INTO v2 (col) VALUES ('c'); SELECT s1 FROM t1; DROP VIEW v1, v2; DROP TABLE t1; # # Bug#11551 Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE # CREATE TABLE t1 (id INT); CREATE VIEW v1 AS SELECT id FROM t1; SHOW TABLES; --error ER_BAD_TABLE_ERROR DROP VIEW v2,v1; SHOW TABLES; CREATE VIEW v1 AS SELECT id FROM t1; --error ER_WRONG_OBJECT DROP VIEW t1,v1; SHOW TABLES; DROP TABLE t1; --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings # # Bug#21261 Wrong access rights was required for an insert to a view # CREATE DATABASE bug21261DB; USE bug21261DB; connect (root,localhost,root,,bug21261DB); connection root; CREATE TABLE t1 (x INT); CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT x FROM t1; CREATE USER 'user21261'@'localhost'; GRANT INSERT, UPDATE ON v1 TO 'user21261'@'localhost'; GRANT INSERT, UPDATE ON t1 TO 'user21261'@'localhost'; CREATE TABLE t2 (y INT); GRANT SELECT ON t2 TO 'user21261'@'localhost'; connect (user21261, localhost, user21261,, bug21261DB); connection user21261; INSERT INTO v1 (x) VALUES (5); UPDATE v1 SET x=1; connection root; GRANT SELECT ON v1 TO 'user21261'@'localhost'; GRANT SELECT ON t1 TO 'user21261'@'localhost'; connection user21261; UPDATE v1,t2 SET x=1 WHERE x=y; connection root; SELECT * FROM t1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user21261'@'localhost'; DROP USER 'user21261'@'localhost'; DROP VIEW v1; DROP TABLE t1; DROP DATABASE bug21261DB; connection default; USE test; disconnect root; disconnect user21261; # # Bug#15950 NOW() optimized away in VIEWs # create table t1 (f1 datetime); create view v1 as select * from t1 where f1 between now() and now() + interval 1 minute; show create view v1; drop view v1; drop table t1; # # Test for Bug#16899 Possible buffer overflow in handling of DEFINER-clause. # # Prepare. --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; DROP VIEW IF EXISTS v2; --enable_warnings CREATE TABLE t1(a INT, b INT); --error ER_WRONG_STRING_LENGTH CREATE DEFINER=1234567890abcdefGHIKL1234567890abcdefGHIKL@localhost VIEW v1 AS SELECT a FROM t1; --error ER_WRONG_STRING_LENGTH CREATE DEFINER=some_user_name@1234567890abcdefghij1234567890abcdefghij1234567890abcdefghijQWERTY VIEW v2 AS SELECT b FROM t1; # Cleanup. DROP TABLE t1; # # Bug#17591 Updatable view not possible with trigger or stored function # # During prelocking phase we didn't update lock type of view tables, # hence READ lock was always requested. # --disable_warnings DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f2; DROP VIEW IF EXISTS v1, v2; DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (i INT); CREATE VIEW v1 AS SELECT * FROM t1; delimiter |; CREATE FUNCTION f1() RETURNS INT BEGIN INSERT INTO v1 VALUES (0); RETURN 0; END | delimiter ;| SELECT f1(); CREATE ALGORITHM=TEMPTABLE VIEW v2 AS SELECT * FROM t1; delimiter |; CREATE FUNCTION f2() RETURNS INT BEGIN INSERT INTO v2 VALUES (0); RETURN 0; END | delimiter ;| --error ER_NON_INSERTABLE_TABLE SELECT f2(); DROP FUNCTION f1; DROP FUNCTION f2; DROP VIEW v1, v2; DROP TABLE t1; # # Bug#5500 wrong select_type in EXPLAIN output for queries over views # CREATE TABLE t1 (s1 int); CREATE VIEW v1 AS SELECT * FROM t1; EXPLAIN SELECT * FROM t1; EXPLAIN SELECT * FROM v1; INSERT INTO t1 VALUES (1), (3), (2); EXPLAIN SELECT * FROM t1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1); EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1); DROP VIEW v1; DROP TABLE t1; # # Bug#5505 Wrong error message on INSERT into a view # create table t1 (s1 int); create view v1 as select s1 as a, s1 as b from t1; --error ER_NON_INSERTABLE_TABLE insert into v1 values (1,1); update v1 set a = 5; drop view v1; drop table t1; # # Bug#21646 view qith a subquery in ON expression # CREATE TABLE t1(pk int PRIMARY KEY); CREATE TABLE t2(pk int PRIMARY KEY, fk int, ver int, org int); CREATE ALGORITHM=MERGE VIEW v1 AS SELECT t1.* FROM t1 JOIN t2 ON t2.fk = t1.pk AND t2.ver = (SELECT MAX(t.ver) FROM t2 t WHERE t.org = t2.org); SHOW WARNINGS; SHOW CREATE VIEW v1; DROP VIEW v1; DROP TABLE t1, t2; # # Bug#19111 TRIGGERs selecting from a VIEW on the firing base table fail # # Allow to select from a view on a table being modified in a trigger # and stored function, since plain select is allowed there. # --disable_warnings DROP FUNCTION IF EXISTS f1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (i INT); INSERT INTO t1 VALUES (1); CREATE VIEW v1 AS SELECT MAX(i) FROM t1; # Plain 'SET NEW.i = (SELECT MAX(i) FROM t1) + 1' works, so select # from a view should work too. CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.i = (SELECT * FROM v1) + 1; INSERT INTO t1 VALUES (1); # Plain 'RETURN (SELECT MAX(i) FROM t1)' works in INSERT, so select # from a view should work too. CREATE FUNCTION f1() RETURNS INT RETURN (SELECT * FROM v1); UPDATE t1 SET i= f1(); DROP FUNCTION f1; DROP VIEW v1; DROP TABLE t1; # # Bug#16813 (WITH CHECK OPTION doesn't work with UPDATE) # CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL); CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION; INSERT INTO v1 (val) VALUES (2); INSERT INTO v1 (val) VALUES (4); -- error ER_VIEW_CHECK_FAILED INSERT INTO v1 (val) VALUES (6); -- error ER_VIEW_CHECK_FAILED UPDATE v1 SET val=6 WHERE id=2; DROP VIEW v1; DROP TABLE t1; # # Bug#22584 last_insert_id not updated after inserting a record # through a updatable view # # We still do not update LAST_INSERT_ID if AUTO_INCREMENT column is # not accessible through a view. However, we do not reset the value # of LAST_INSERT_ID, but keep it unchanged. # --disable_warnings DROP VIEW IF EXISTS v1, v2; DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY, j INT); CREATE VIEW v1 AS SELECT j FROM t1; CREATE VIEW v2 AS SELECT * FROM t1; INSERT INTO t1 (j) VALUES (1); SELECT LAST_INSERT_ID(); INSERT INTO v1 (j) VALUES (2); --echo # LAST_INSERT_ID() should not change. SELECT LAST_INSERT_ID(); INSERT INTO v2 (j) VALUES (3); --echo # LAST_INSERT_ID() should be updated. SELECT LAST_INSERT_ID(); INSERT INTO v1 (j) SELECT j FROM t1; --echo # LAST_INSERT_ID() should not change. SELECT LAST_INSERT_ID(); SELECT * FROM t1; DROP VIEW v1, v2; DROP TABLE t1; # # Bug#25580 !0 as an operand in a select expression of a view # CREATE VIEW v AS SELECT !0 * 5 AS x FROM DUAL; SHOW CREATE VIEW v; SELECT !0 * 5 AS x FROM DUAL; SELECT * FROM v; DROP VIEW v; # # Bug#24293 '\Z' token is not handled correctly in views # --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings CREATE VIEW v1 AS SELECT 'The\ZEnd'; SELECT * FROM v1; SHOW CREATE VIEW v1; DROP VIEW v1; # # Bug#26124 BETWEEN over a view column of the DATETIME type # CREATE TABLE t1 (mydate DATETIME); INSERT INTO t1 VALUES ('2007-01-01'), ('2007-01-02'), ('2007-01-30'), ('2007-01-31'); CREATE VIEW v1 AS SELECT mydate from t1; SELECT * FROM t1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31'; SELECT * FROM v1 WHERE mydate BETWEEN '2007-01-01' AND '2007-01-31'; DROP VIEW v1; DROP TABLE t1; # # Bug#25931 update of a multi-table view with check option # CREATE TABLE t1 (a int); CREATE TABLE t2 (b int); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1), (2); CREATE VIEW v1 AS SELECT t2.b FROM t1,t2 WHERE t1.a = t2.b WITH CHECK OPTION; SELECT * FROM v1; --error ER_VIEW_CHECK_FAILED UPDATE v1 SET b=3; SELECT * FROM v1; SELECT * FROM t1; SELECT * FROM t2; DROP VIEW v1; DROP TABLE t1,t2; # # Bug#12122 Views with ORDER BY can't be resolved using MERGE algorithm. # create table t1(f1 int, f2 int); insert into t1 values(1,2),(1,3),(1,1),(2,3),(2,1),(2,2); select * from t1; create view v1 as select * from t1 order by f2; select * from v1; explain extended select * from v1; select * from v1 order by f1; explain extended select * from v1 order by f1; drop view v1; drop table t1; # # Bug#26209 queries with GROUP BY and ORDER BY using views # CREATE TABLE t1 ( id int(11) NOT NULL PRIMARY KEY, country varchar(32), code int(11) default NULL ); INSERT INTO t1 VALUES (1,'ITALY',100),(2,'ITALY',200),(3,'FRANCE',100), (4,'ITALY',100); CREATE VIEW v1 AS SELECT * FROM t1; SELECT code, COUNT(DISTINCT country) FROM t1 GROUP BY code ORDER BY MAX(id); SELECT code, COUNT(DISTINCT country) FROM v1 GROUP BY code ORDER BY MAX(id); DROP VIEW v1; DROP TABLE t1; # # Bug#25897 Some queries are no longer possible after a CREATE VIEW fails # --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings let $query = SELECT * FROM (SELECT 1) AS t; eval $query; eval CREATE VIEW v1 AS $query; DROP VIEW v1; --echo # Previously the following would fail. eval $query; # # Bug#24532 The return data type of IS TRUE is different from similar operations # --disable_warnings drop view if exists view_24532_a; drop view if exists view_24532_b; drop table if exists table_24532; --enable_warnings create table table_24532 ( a int, b bigint, c int(4), d bigint(48) ); create view view_24532_a as select a IS TRUE, a IS NOT TRUE, a IS FALSE, a IS NOT FALSE, a IS UNKNOWN, a IS NOT UNKNOWN, a is NULL, a IS NOT NULL, ISNULL(a), b IS TRUE, b IS NOT TRUE, b IS FALSE, b IS NOT FALSE, b IS UNKNOWN, b IS NOT UNKNOWN, b is NULL, b IS NOT NULL, ISNULL(b), c IS TRUE, c IS NOT TRUE, c IS FALSE, c IS NOT FALSE, c IS UNKNOWN, c IS NOT UNKNOWN, c is NULL, c IS NOT NULL, ISNULL(c), d IS TRUE, d IS NOT TRUE, d IS FALSE, d IS NOT FALSE, d IS UNKNOWN, d IS NOT UNKNOWN, d is NULL, d IS NOT NULL, ISNULL(d) from table_24532; describe view_24532_a; create view view_24532_b as select a IS TRUE, if(ifnull(a, 0), 1, 0) as old_istrue, a IS NOT TRUE, if(ifnull(a, 0), 0, 1) as old_isnottrue, a IS FALSE, if(ifnull(a, 1), 0, 1) as old_isfalse, a IS NOT FALSE, if(ifnull(a, 1), 1, 0) as old_isnotfalse from table_24532; describe view_24532_b; show create view view_24532_b; insert into table_24532 values (0, 0, 0, 0); select * from view_24532_b; update table_24532 set a=1; select * from view_24532_b; update table_24532 set a=NULL; select * from view_24532_b; drop view view_24532_a; drop view view_24532_b; drop table table_24532; # # Bug#26560 view using subquery with a reference to an outer alias # CREATE TABLE t1 ( lid int NOT NULL PRIMARY KEY, name char(10) NOT NULL ); INSERT INTO t1 (lid, name) VALUES (1, 'YES'), (2, 'NO'); CREATE TABLE t2 ( id int NOT NULL PRIMARY KEY, gid int NOT NULL, lid int NOT NULL, dt date ); CREATE TABLE t3 ( id int NOT NULL PRIMARY KEY, gid int NOT NULL, lid int NOT NULL, dt date ); INSERT INTO t2 (id, gid, lid, dt) VALUES (1, 1, 1, '2007-01-01'),(2, 1, 2, '2007-01-02'), (3, 2, 2, '2007-02-01'),(4, 2, 1, '2007-02-02'); INSERT INTO t3 (id, gid, lid, dt) VALUES (1, 1, 1, '2007-01-01'),(2, 1, 2, '2007-01-02'), (3, 2, 2, '2007-02-01'),(4, 2, 1, '2007-02-02'); SELECT DISTINCT t2.gid AS lgid, (SELECT t1.name FROM t1, t3 WHERE t1.lid = t3.lid AND t3.gid = t2.gid ORDER BY t3.dt DESC LIMIT 1 ) as clid FROM t2; CREATE VIEW v1 AS SELECT DISTINCT t2.gid AS lgid, (SELECT t1.name FROM t1, t3 WHERE t1.lid = t3.lid AND t3.gid = t2.gid ORDER BY t3.dt DESC LIMIT 1 ) as clid FROM t2; SELECT * FROM v1; DROP VIEW v1; DROP table t1,t2,t3; # # Bug#27786 Inconsistent Operation Performing UNION On View With ORDER BY # CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3); CREATE VIEW v1 AS SELECT a FROM t1 ORDER BY a; SELECT * FROM t1 UNION SELECT * FROM v1; EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1; SELECT * FROM v1 UNION SELECT * FROM t1; EXPLAIN SELECT * FROM v1 UNION SELECT * FROM t1; SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a; EXPLAIN SELECT * FROM t1 UNION SELECT * FROM v1 ORDER BY a; DROP VIEW v1; DROP TABLE t1; # # Bug#27921 View ignores precision for CAST() # CREATE VIEW v1 AS SELECT CAST( 1.23456789 AS DECIMAL( 7,5 ) ) AS col; SELECT * FROM v1; DESCRIBE v1; DROP VIEW v1; CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col; SHOW CREATE VIEW v1; DROP VIEW v1; # # Bug#28716 CHECK OPTION expression is evaluated over expired record buffers # when VIEW is updated via temporary tables # CREATE TABLE t1 (a INT); CREATE TABLE t2 (b INT, c INT DEFAULT 0); INSERT INTO t1 (a) VALUES (1), (2); INSERT INTO t2 (b) VALUES (1), (2); CREATE VIEW v1 AS SELECT t2.b,t2.c FROM t1, t2 WHERE t1.a=t2.b AND t2.b < 3 WITH CHECK OPTION; SELECT * FROM v1; UPDATE v1 SET c=1 WHERE b=1; SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1,t2; # # Bug#28561 update on multi-table view with CHECK OPTION and a subquery # in WHERE condition # CREATE TABLE t1 (id int); CREATE TABLE t2 (id int, c int DEFAULT 0); INSERT INTO t1 (id) VALUES (1); INSERT INTO t2 (id) VALUES (1); CREATE VIEW v1 AS SELECT t2.c FROM t1, t2 WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION; UPDATE v1 SET c=1; DROP VIEW v1; DROP TABLE t1,t2; # # Bug#27827 CHECK OPTION ignores ON conditions when updating # a multi-table view with CHECK OPTION. # CREATE TABLE t1 (a1 INT, c INT DEFAULT 0); CREATE TABLE t2 (a2 INT); CREATE TABLE t3 (a3 INT); CREATE TABLE t4 (a4 INT); INSERT INTO t1 (a1) VALUES (1),(2); INSERT INTO t2 (a2) VALUES (1),(2); INSERT INTO t3 (a3) VALUES (1),(2); INSERT INTO t4 (a4) VALUES (1),(2); CREATE VIEW v1 AS SELECT t1.a1, t1.c FROM t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3 WITH CHECK OPTION; SELECT * FROM v1; --error ER_VIEW_CHECK_FAILED UPDATE v1 SET c=3; PREPARE t FROM 'UPDATE v1 SET c=3'; --error ER_VIEW_CHECK_FAILED EXECUTE t; --error ER_VIEW_CHECK_FAILED EXECUTE t; --error ER_VIEW_CHECK_FAILED INSERT INTO v1(a1, c) VALUES (3, 3); UPDATE v1 SET c=1 WHERE a1=1; SELECT * FROM v1; SELECT * FROM t1; CREATE VIEW v2 AS SELECT t1.a1, t1.c FROM (t1 JOIN t2 ON t1.a1=t2.a2 AND t1.c < 3) JOIN (t3 JOIN t4 ON t3.a3=t4.a4) ON t2.a2=t3.a3 WITH CHECK OPTION; SELECT * FROM v2; --error ER_VIEW_CHECK_FAILED UPDATE v2 SET c=3; PREPARE t FROM 'UPDATE v2 SET c=3'; --error ER_VIEW_CHECK_FAILED EXECUTE t; --error ER_VIEW_CHECK_FAILED EXECUTE t; --error ER_VIEW_CHECK_FAILED INSERT INTO v2(a1, c) VALUES (3, 3); UPDATE v2 SET c=2 WHERE a1=1; SELECT * FROM v2; SELECT * FROM t1; DROP VIEW v1,v2; DROP TABLE t1,t2,t3,t4; # # Bug#29104 assertion abort for a query with a view column reference # in the GROUP BY list and a condition requiring the value # of another view column to be equal to a constant # CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (1,2), (2,2), (1,3), (1,2); CREATE VIEW v1 AS SELECT a, b+1 as b FROM t1; SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b; EXPLAIN SELECT b, SUM(a) FROM v1 WHERE b=3 GROUP BY b; SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a; EXPLAIN SELECT a, SUM(b) FROM v1 WHERE b=3 GROUP BY a; SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a; EXPLAIN SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a; DROP VIEW v1; DROP TABLE t1; # # Bug#29392 SELECT over a multi-table view with ORDER BY # selecting the same view column with two different aliases # CREATE TABLE t1 ( person_id int NOT NULL PRIMARY KEY, username varchar(40) default NULL, status_flg char(1) NOT NULL default 'A' ); CREATE TABLE t2 ( person_role_id int NOT NULL auto_increment PRIMARY KEY, role_id int NOT NULL, person_id int NOT NULL, INDEX idx_person_id (person_id), INDEX idx_role_id (role_id) ); CREATE TABLE t3 ( role_id int NOT NULL auto_increment PRIMARY KEY, role_name varchar(100) default NULL, app_name varchar(40) NOT NULL, INDEX idx_app_name(app_name) ); CREATE VIEW v1 AS SELECT profile.person_id AS person_id FROM t1 profile, t2 userrole, t3 role WHERE userrole.person_id = profile.person_id AND role.role_id = userrole.role_id AND profile.status_flg = 'A' ORDER BY profile.person_id,role.app_name,role.role_name; INSERT INTO t1 VALUES (6,'Sw','A'), (-1136332546,'ols','e'), (0,' *\n','0'), (-717462680,'ENTS Ta','0'), (-904346964,'ndard SQL\n','0'); INSERT INTO t2 VALUES (1,3,6),(2,4,7),(3,5,8),(4,6,9),(5,1,6),(6,1,7),(7,1,8),(8,1,9),(9,1,10); INSERT INTO t3 VALUES (1,'NUCANS_APP_USER','NUCANSAPP'),(2,'NUCANS_TRGAPP_USER','NUCANSAPP'), (3,'IA_INTAKE_COORDINATOR','IACANS'),(4,'IA_SCREENER','IACANS'), (5,'IA_SUPERVISOR','IACANS'),(6,'IA_READONLY','IACANS'), (7,'SOC_USER','SOCCANS'),(8,'CAYIT_USER','CAYITCANS'), (9,'RTOS_DCFSPOS_SUPERVISOR','RTOS'); EXPLAIN SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6; SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6; DROP VIEW v1; DROP TABLE t1,t2,t3; # # Bug#30020 Insufficient check led to a wrong info provided by the # information schema table. # create table t1 (i int); insert into t1 values (1), (2), (1), (3), (2), (4); create view v1 as select distinct i from t1; select * from v1; select table_name, is_updatable from information_schema.views where table_name = 'v1'; drop view v1; drop table t1; # # Bug#28701 SELECTs from VIEWs completely ignore USE/FORCE KEY, allowing # invalid statements # CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2); CREATE VIEW v1 AS SELECT * FROM t1; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 USE KEY(non_existant); --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 FORCE KEY(non_existant); --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 IGNORE KEY(non_existant); DROP VIEW v1; DROP TABLE t1; # # Bug#28702 VIEWs defined with USE/FORCE KEY ignore that request # CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0, PRIMARY KEY(a), KEY (b)); INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),(); CREATE VIEW v1 AS SELECT * FROM t1 FORCE KEY (PRIMARY,b) ORDER BY a; SHOW CREATE VIEW v1; EXPLAIN SELECT * FROM v1; CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a; SHOW CREATE VIEW v2; EXPLAIN SELECT * FROM v2; CREATE VIEW v3 AS SELECT * FROM t1 IGNORE KEY (b) ORDER BY a; SHOW CREATE VIEW v3; EXPLAIN SELECT * FROM v3; DROP VIEW v1; DROP VIEW v2; DROP VIEW v3; DROP TABLE t1; --echo # --echo # Bug#29477 Not all fields of the target table were checked to have --echo # a default value when inserting into a view. --echo # create table t1(f1 int, f2 int not null); create view v1 as select f1 from t1; insert into v1 values(1); set @old_mode=@@sql_mode; set @@sql_mode=traditional; --error ER_NO_DEFAULT_FOR_VIEW_FIELD insert into v1 values(1); set @@sql_mode=@old_mode; drop view v1; drop table t1; # # Bug#33389 Selecting from a view into a table from within SP or trigger # crashes server # create table t1 (a int, key(a)); create table t2 (c int); create view v1 as select a b from t1; create view v2 as select 1 a from t2, v1 where c in (select 1 from t1 where b = a); insert into t1 values (1), (1); insert into t2 values (1), (1); prepare stmt from "select * from v2 where a = 1"; execute stmt; drop view v1, v2; drop table t1, t2; # # Bug#33049 Assert while running test-as3ap test(mysql-bench suite) # CREATE TABLE t1 (a INT); CREATE VIEW v1 AS SELECT p.a AS a FROM t1 p, t1 q; INSERT INTO t1 VALUES (1), (1); SELECT MAX(a), COUNT(DISTINCT a) FROM v1 GROUP BY a; DROP VIEW v1; DROP TABLE t1; ########################################################################### --echo # ----------------------------------------------------------------- --echo # -- Bug#34337 Server crash when Altering a view using a table name. --echo # ----------------------------------------------------------------- --echo --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings --echo CREATE TABLE t1(c1 INT); --echo SELECT * FROM t1; --error ER_WRONG_OBJECT ALTER ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW t1 (c2) AS SELECT (1); --echo DROP TABLE t1; --echo --echo # -- End of test case for Bug#34337. --echo ########################################################################### --echo # ----------------------------------------------------------------- --echo # -- Bug#35193 VIEW query is rewritten without "FROM DUAL", --echo # -- causing syntax error --echo # ----------------------------------------------------------------- --echo CREATE VIEW v1 AS SELECT 1 FROM DUAL WHERE 1; --echo SELECT * FROM v1; SHOW CREATE TABLE v1; --echo DROP VIEW v1; --echo --echo # -- End of test case for Bug#35193. --echo ########################################################################### # # Bug#39040 valgrind errors/crash when creating views with binlog logging # enabled # # Bug is visible only when running in valgrind with binary logging. CREATE VIEW v1 AS SELECT 1; DROP VIEW v1; # # Bug#33461 SELECT ... FROM <view> USE INDEX (...) throws an error # CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, INDEX (c2)); INSERT INTO t1 VALUES (1,1), (2,2), (3,3); SELECT * FROM t1 USE INDEX (PRIMARY) WHERE c1=2; SELECT * FROM t1 USE INDEX (c2) WHERE c2=2; CREATE VIEW v1 AS SELECT c1, c2 FROM t1; SHOW INDEX FROM v1; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 USE INDEX (PRIMARY) WHERE c1=2; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 FORCE INDEX (PRIMARY) WHERE c1=2; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 IGNORE INDEX (PRIMARY) WHERE c1=2; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 USE INDEX (c2) WHERE c2=2; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 FORCE INDEX (c2) WHERE c2=2; --error ER_KEY_DOES_NOT_EXITS SELECT * FROM v1 IGNORE INDEX (c2) WHERE c2=2; DROP VIEW v1; DROP TABLE t1; --echo # --echo # Bug #45806 crash when replacing into a view with a join! --echo # CREATE TABLE t1(a INT UNIQUE); CREATE VIEW v1 AS SELECT t1.a FROM t1, t1 AS a; INSERT INTO t1 VALUES (1), (2); --error ER_VIEW_DELETE_MERGE_VIEW REPLACE INTO v1(a) SELECT 1 FROM t1,t1 AS c; SELECT * FROM v1; --error ER_VIEW_DELETE_MERGE_VIEW REPLACE INTO v1(a) SELECT 3 FROM t1,t1 AS c; SELECT * FROM v1; DELETE FROM t1 WHERE a=3; INSERT INTO v1(a) SELECT 1 FROM t1,t1 AS c ON DUPLICATE KEY UPDATE `v1`.`a`= 1; SELECT * FROM v1; CREATE VIEW v2 AS SELECT t1.a FROM t1, v1 AS a; --error ER_VIEW_DELETE_MERGE_VIEW REPLACE INTO v2(a) SELECT 1 FROM t1,t1 AS c; SELECT * FROM v2; --error ER_VIEW_DELETE_MERGE_VIEW REPLACE INTO v2(a) SELECT 3 FROM t1,t1 AS c; SELECT * FROM v2; INSERT INTO v2(a) SELECT 1 FROM t1,t1 AS c ON DUPLICATE KEY UPDATE `v2`.`a`= 1; SELECT * FROM v2; DROP VIEW v1; DROP VIEW v2; DROP TABLE t1; --echo # -- End of test case for Bug#45806 --echo # ----------------------------------------------------------------- --echo # -- Bug#40825: Error 1356 while selecting from a view --echo # -- with a "HAVING" clause though query works --echo # ----------------------------------------------------------------- --echo CREATE TABLE t1 (c INT); --echo CREATE VIEW v1 (view_column) AS SELECT c AS alias FROM t1 HAVING alias; SHOW CREATE VIEW v1; SELECT * FROM v1; --echo DROP VIEW v1; DROP TABLE t1; --echo --echo # -- End of test case for Bug#40825 --echo --echo # ----------------------------------------------------------------- --echo # -- End of 5.0 tests. --echo # ----------------------------------------------------------------- # # Bug#21370 View renaming lacks tablename_to_filename encoding # --disable_warnings DROP DATABASE IF EXISTS `d-1`; --enable_warnings CREATE DATABASE `d-1`; USE `d-1`; CREATE TABLE `t-1` (c1 INT); CREATE VIEW `v-1` AS SELECT c1 FROM `t-1`; SHOW TABLES; RENAME TABLE `t-1` TO `t-2`; RENAME TABLE `v-1` TO `v-2`; SHOW TABLES; DROP TABLE `t-2`; DROP VIEW `v-2`; DROP DATABASE `d-1`; USE test; --echo --echo # --echo # Bug#26676 VIEW using old table schema in a session. --echo # --echo --disable_warnings DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1(c1 INT, c2 INT); INSERT INTO t1 VALUES (1, 2), (3, 4); --echo SELECT * FROM t1; --echo CREATE VIEW v1 AS SELECT * FROM t1; --echo SELECT * FROM v1; --echo ALTER TABLE t1 ADD COLUMN c3 INT AFTER c2; --echo SELECT * FROM t1; --echo SELECT * FROM v1; --echo SHOW CREATE VIEW v1; --echo DROP VIEW v1; DROP TABLE t1; --echo --echo # End of test case for Bug#26676. --echo ########################################################################### --echo # ----------------------------------------------------------------- --echo # -- Bug#32538 View definition picks up character set, but not collation --echo # ----------------------------------------------------------------- --echo --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings --echo SET collation_connection = latin1_general_ci; CREATE VIEW v1 AS SELECT _latin1 'text1' AS c1, 'text2' AS c2; --echo SELECT COLLATION(c1), COLLATION(c2) FROM v1; --echo SHOW CREATE VIEW v1; --echo --error ER_CANT_AGGREGATE_2COLLATIONS SELECT * FROM v1 WHERE c1 = 'text1'; --echo SELECT * FROM v1 WHERE c2 = 'text2'; --echo use test; SET names latin1; --echo SELECT COLLATION(c1), COLLATION(c2) FROM v1; --echo SELECT * FROM v1 WHERE c1 = 'text1'; --echo --error ER_CANT_AGGREGATE_2COLLATIONS SELECT * FROM v1 WHERE c2 = 'text2'; --echo DROP VIEW v1; --echo --echo # -- End of test case for Bug#32538. --echo # # Bug#34587 Creating a view inside a stored procedure leads to a server crash # --disable_warnings drop view if exists a; drop procedure if exists p; --enable_warnings delimiter |; create procedure p() begin declare continue handler for sqlexception begin end; create view a as select 1; end| delimiter ;| call p(); call p(); drop view a; drop procedure p; ########################################################################### --echo # --echo # Bug #44860: ALTER TABLE on view crashes server --echo # CREATE TABLE t1 (a INT); CREATE VIEW v1 AS SELECT a FROM t1; --error ER_WRONG_OBJECT ALTER TABLE v1; DROP VIEW v1; DROP TABLE t1; --echo # --echo # Bug#48449: hang on show create view after upgrading when --echo # view contains function of view --echo # --disable_warnings DROP VIEW IF EXISTS v1,v2; DROP TABLE IF EXISTS t1,t2; DROP FUNCTION IF EXISTS f1; --enable_warnings CREATE TABLE t1 (a INT); CREATE TABLE t2 (a INT); delimiter //; CREATE FUNCTION f1() RETURNS INT BEGIN SELECT a FROM v2 INTO @a; RETURN @a; END// delimiter ;// --echo # Trigger pre-locking when opening v2. CREATE VIEW v1 AS SELECT f1() FROM t1; let $MYSQLD_DATADIR= `SELECT @@datadir`; copy_file std_data/bug48449.frm $MYSQLD_DATADIR/test/v2.frm; SHOW CREATE VIEW v1; DROP VIEW v1,v2; DROP TABLE t1,t2; DROP FUNCTION f1; # # Bug#48294 assertion when creating a view based on some row() construct in select query # CREATE TABLE t1(f1 INT); INSERT INTO t1 VALUES (); CREATE VIEW v1 AS SELECT 1 FROM t1 WHERE ROW(1,1) >= ROW(1, (SELECT 1 FROM t1 WHERE f1 >= ANY ( SELECT '1' ))); DROP VIEW v1; DROP TABLE t1; --echo # --echo # Bug#52120 create view cause Assertion failed: 0, file .\item_subselect.cc, line 817 --echo # CREATE TABLE t1 (a CHAR(1) CHARSET latin1, b CHAR(1) CHARSET utf8); CREATE VIEW v1 AS SELECT 1 from t1 WHERE t1.b <=> (SELECT a FROM t1 WHERE a < SOME(SELECT '1')); DROP VIEW v1; DROP TABLE t1; --echo # --echo # Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846 --echo # CREATE TABLE t1(a int); CREATE VIEW v1 AS SELECT 1 FROM t1 GROUP BY SUBSTRING(1 FROM (SELECT 3 FROM t1 WHERE a >= ANY(SELECT 1))); DROP VIEW v1; DROP TABLE t1; --echo # --echo # Bug#57352 valgrind warnings when creating view --echo # CREATE VIEW v1 AS SELECT 1 IN (1 LIKE 2,0) AS f; DROP VIEW v1; --echo # --echo # Bug 11829681 - 60295: ERROR 1356 ON VIEW THAT EXECUTES FINE AS A QUERY --echo # CREATE TABLE t1 (a INT); CREATE VIEW v1 AS SELECT s.* FROM t1 s, t1 b HAVING a; SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; --echo # ----------------------------------------------------------------- --echo # -- End of 5.1 tests. --echo # ----------------------------------------------------------------- # # Bug#9801 (Views: imperfect error message) # --disable_warnings drop table if exists t_9801; drop view if exists v_9801; --enable_warnings create table t_9801 (s1 int); --error ER_VIEW_NONUPD_CHECK create view v_9801 as select sum(s1) from t_9801 with check option; --error ER_VIEW_NONUPD_CHECK create view v_9801 as select sum(s1) from t_9801 group by s1 with check option; --error ER_VIEW_NONUPD_CHECK create view v_9801 as select sum(s1) from t_9801 group by s1 with rollup with check option; drop table t_9801; --echo # --echo # Bug #47335 assert in get_table_share --echo # --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; --enable_warnings CREATE TEMPORARY TABLE t1 (id INT); --error ER_NO_SUCH_TABLE ALTER VIEW t1 AS SELECT 1 AS f1; DROP TABLE t1; CREATE VIEW v1 AS SELECT 1 AS f1; CREATE TEMPORARY TABLE v1 (id INT); ALTER VIEW v1 AS SELECT 2 AS f1; DROP TABLE v1; SELECT * FROM v1; DROP VIEW v1; --echo # --echo # Bug #47635 assert in start_waiting_global_read_lock --echo # during CREATE VIEW --echo # --disable_warnings DROP TABLE IF EXISTS t1, t2; DROP VIEW IF EXISTS t2; --enable_warnings CREATE TABLE t1 (f1 integer); CREATE TEMPORARY TABLE IF NOT EXISTS t1 (f1 integer); CREATE TEMPORARY TABLE t2 (f1 integer); DROP TABLE t1; FLUSH TABLES WITH READ LOCK; --error ER_CANT_UPDATE_WITH_READLOCK CREATE VIEW t2 AS SELECT * FROM t1; UNLOCK TABLES; DROP TABLE t1, t2; --echo # --echo # Bug#48315 Metadata lock is not taken for merged views that --echo # use an INFORMATION_SCHEMA table --echo # --disable_warnings DROP VIEW IF EXISTS v1; DROP PROCEDURE IF EXISTS p1; --enable_warnings connect (con2, localhost, root); connect (con3, localhost, root); --echo # Connection default connection default; CREATE VIEW v1 AS SELECT schema_name FROM information_schema.schemata; CREATE PROCEDURE p1() SELECT COUNT(*), GET_LOCK('blocker', 100) FROM v1; --echo # CALL p1() so the view is merged. --disable_result_log CALL p1(); --enable_result_log SELECT RELEASE_LOCK('blocker'); --echo # Connection 3 connection con3; SELECT GET_LOCK('blocker', 100); --echo # Connection default connection default; --echo # Try to CALL p1() again, this time it should block for t1. --echo # Sending: --send CALL p1() --echo # Connection 2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 from information_schema.processlist WHERE state = "User lock" AND info = "SELECT COUNT(*), GET_LOCK('blocker', 100) FROM v1"; --source include/wait_condition.inc --echo # ... then try to drop the view. This should block. --echo # Sending: --send DROP VIEW v1 --echo # Connection 3 connection con3; let $wait_condition= SELECT COUNT(*) = 1 from information_schema.processlist WHERE state = "Waiting for table metadata lock" AND info = "DROP VIEW v1"; --source include/wait_condition.inc --echo # Now allow CALL p1() to complete SELECT RELEASE_LOCK('blocker'); --echo # Connection default connection default; --echo # Reaping: CALL p1() --disable_result_log --reap --enable_result_log SELECT RELEASE_LOCK('blocker'); --echo # Connection 2 connection con2; --echo # Reaping: DROP VIEW v1 --reap --echo # Connection default connection default; DROP PROCEDURE p1; disconnect con2; disconnect con3; --echo # --echo # Bug#11757397 49437: CANNOT DO SHOW FIELDS FOR BIG VIEW --echo # --disable_warnings DROP TABLE IF EXISTS t1, t2, t3, table_broken; DROP VIEW IF EXISTS view_broken; --enable_warnings let $colnum= 1500; let $str= a text; while ($colnum) { let $str= a$colnum int, $str; dec $colnum; } --eval CREATE TABLE t1 ($str) let $colnum= 1500; let $str= b text; while ($colnum) { let $str= b$colnum int, $str; dec $colnum; } --eval CREATE TABLE t2 ($str) let $colnum= 1500; let $str= c text; while ($colnum) { let $str= c$colnum int, $str; dec $colnum; } --eval CREATE TABLE t3 ($str) # New behavior --error ER_TOO_MANY_FIELDS CREATE VIEW view_broken AS SELECT * FROM t1, t2, t3; # Existing behavior --error ER_TOO_MANY_FIELDS CREATE TABLE table_broken AS SELECT * FROM t1, t2, t3; DROP TABLE t1, t2, t3; --echo # --echo # Bug#11766440 59546: Assertion m_sp == __null fails in --echo # Item_func_sp::init_result_field with functions --echo # CREATE TABLE t1 (a INT); CREATE FUNCTION f1 () RETURNS INTEGER RETURN 1; CREATE FUNCTION f2 (i INTEGER) RETURNS INTEGER RETURN 1; CREATE VIEW v1 AS SELECT f1() AS a FROM t1; CREATE VIEW v2 AS SELECT f2(a) AS a FROM v1; DROP FUNCTION f1; --error ER_VIEW_INVALID SELECT f2(a) FROM v2; DROP VIEW v2; DROP VIEW v1; DROP FUNCTION f2; DROP TABLE t1; --echo # --echo # Bug#13418197: ASSERTION `(*TABLES)->REGINFO.LOCK_TYPE >= --echo # TL_READ' FAILED | MYSQL_LOCK_TABLES --echo # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TEMPORARY TABLE t1 (a INT) engine=InnoDB; CREATE VIEW t1 AS SELECT 1; DROP VIEW t1; DROP TEMPORARY TABLE t1; --echo # --echo # Bug#13601606: FAILED VIEW CREATION ERROR MESSAGE (FOR DB NOT PRESENT) --echo # NEEDS BIG IMPROVEMENT --echo # --disable_warnings DROP DATABASE IF EXISTS nodb; --enable_warnings --error ER_BAD_DB_ERROR CREATE VIEW nodb.a AS SELECT 1; --echo # --echo # Bug#13633549 HANDLE_FATAL_SIGNAL IN --echo # TEST_IF_SKIP_SORT_ORDER/CREATE_SORT_INDEX --echo # CREATE TABLE t1 ( pk INT AUTO_INCREMENT, c_int_key INT, PRIMARY KEY (pk), KEY (c_int_key) ) ENGINE=innodb; CREATE VIEW v_t1 AS SELECT * FROM t1; CREATE TABLE t2 ( pk INT auto_increment, c_varchar_600_x VARCHAR(600), c_int_key INT, c_varchar_600_y VARCHAR(600), c_varchar_600_z VARCHAR(600), PRIMARY KEY (pk), KEY (c_int_key) ) ENGINE=innodb; CREATE VIEW v_t2 AS SELECT * FROM t2; INSERT INTO t2 VALUES ( NULL, repeat('x', 600), 3, repeat('y', 600), repeat('z', 600) ); SELECT a1.pk AS f1 FROM v_t1 AS a1 LEFT JOIN v_t2 AS a2 ON a1.pk=a2.c_int_key WHERE a1.pk > 8 OR ((a1.pk BETWEEN 9 AND 13) AND a1.pk = 90) ORDER BY f1 ; DROP TABLE t1, t2; DROP VIEW v_t1, v_t2; --echo # --echo # Bug#13783777 CONSTANT PROPAGATION IS WRONG FOR --echo # DISJUNCTIVE PREDICATES IN VIEWS --echo # CREATE TABLE t1 ( pk INTEGER, PRIMARY KEY (pk) ); INSERT INTO t1 VALUES (1), (2); CREATE VIEW v_t1 AS SELECT * FROM t1; # Query directly against the table (correct result) SELECT pk FROM t1 WHERE pk > 8 OR ((pk BETWEEN 9 AND 13) AND pk = 90) ; # Query against a view (wrong result) SELECT pk FROM v_t1 WHERE pk > 8 OR ((pk BETWEEN 9 AND 13) AND pk = 90) ; DROP VIEW v_t1; DROP TABLE t1; --echo # --echo # WL#5275 Process subqueries in FROM clause in the same way as view --echo # CREATE TABLE t1(a INTEGER, b INTEGER); CREATE TABLE t2(a INTEGER, b INTEGER); INSERT INTO t1 VALUES(1, 10), (2, 20); INSERT INTO t2 VALUES(1, 100), (2, 200); CREATE VIEW v2 AS SELECT * FROM t2; CREATE VIEW v2_sj AS SELECT * FROM t2 WHERE a IN (SELECT a FROM t1); CREATE VIEW v12_1 AS SELECT t2.a, t2.b FROM t1 JOIN t2 USING (a); CREATE VIEW v12_2 AS SELECT t1.a, t2.b FROM t1 JOIN t2 USING (a); CREATE VIEW v12_3 AS SELECT t2.a, t2.b FROM t1 JOIN t2 USING (a) WHERE t1.b > 15; CREATE VIEW vu_1 AS SELECT * FROM t2 UNION SELECT * FROM t2; CREATE VIEW vu_2 AS SELECT * FROM t2 UNION ALL SELECT * FROM t2; CREATE VIEW vd_1 AS SELECT DISTINCT a, b FROM t2; CREATE VIEW va_1 AS SELECT SUM(a) AS a, SUM(b) AS b FROM t2; CREATE VIEW vg_1 AS SELECT a, SUM(b) AS b FROM t2 GROUP BY a; CREATE VIEW vh_1 AS SELECT 1 AS a FROM t2 HAVING COUNT(*) > 1; CREATE VIEW vl_1 AS SELECT * FROM t2 LIMIT 1; CREATE VIEW vlo_1 AS SELECT * FROM t2 LIMIT 2 OFFSET 1; CREATE VIEW vrow AS SELECT 1 AS a; CREATE VIEW vo_1 AS SELECT * FROM t2 ORDER BY a; CREATE VIEW vo_2 AS SELECT * FROM t2 ORDER BY a DESC; CREATE VIEW vx AS SELECT a, (SELECT b) AS b FROM t2; # Check allowed merge scenarios # Allowed: Simple selection, joins, WHERE clause let $query= SELECT * FROM t1 JOIN v2 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1, v2 AS dt WHERE t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM (t1 JOIN t2 ON t1.a=t2.a) JOIN v2 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN v12_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM (t1 JOIN t2 USING (a)) JOIN v12_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM (t1 JOIN t2 USING (a)) JOIN v12_2 AS dt1 ON t1.a=dt1.a AND t2.b=dt1.b JOIN v12_1 AS dt2 ON dt1.a=dt2.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN v12_3 AS dt ON t1.a=dt.a; eval $query; eval explain $query; # Allowed: Subqueries in WHERE clause let $query= SELECT * FROM t1 JOIN v2_sj AS dt ON t1.a=dt.a; eval $query; eval explain $query; # Disallowed: UNION, aggregated queries, LIMIT, OFFSET, table-less, variables: let $query= SELECT * FROM t1 JOIN vu_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vu_2 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vd_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN va_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vg_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vh_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vl_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vlo_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vrow AS dt ON t1.a=dt.a; eval $query; eval explain $query; # Allowed: ORDER BY list # Simple outer query: ORDER BY is propagated to outer level let $query= SELECT * FROM vo_1 AS dt; eval $query; eval explain $query; let $query= SELECT * FROM vo_2 AS dt; eval $query; eval explain $query; let $query= SELECT * FROM vo_1 AS dt WHERE dt.a > 0; eval $query; eval explain $query; let $query= SELECT * FROM vo_2 AS dt WHERE dt.a > 0; eval $query; eval explain $query; # Joined outer query: Inner ORDER BY is discarded let $query= SELECT * FROM t1 JOIN vo_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vo_2 AS dt ON t1.a=dt.a; eval $query; eval explain $query; # Grouped outer query: Inner ORDER BY is discarded let $query= SELECT dt.a, COUNT(*) FROM vo_1 AS dt GROUP BY dt.a; eval $query; eval explain $query; let $query= SELECT dt.a, COUNT(*) FROM vo_2 AS dt GROUP BY dt.a; eval $query; eval explain $query; let $query= SELECT COUNT(*) FROM vo_1 AS dt; eval $query; eval explain $query; let $query= SELECT COUNT(*) FROM vo_2 AS dt; eval $query; eval explain $query; let $query= SELECT DISTINCT * FROM vo_1 AS dt; eval $query; eval explain $query; let $query= SELECT DISTINCT * FROM vo_2 AS dt; eval $query; eval explain $query; # Ordered outer query: Inner ORDER BY is discarded let $query= SELECT * FROM t1 JOIN vo_1 AS dt ON t1.a=dt.a ORDER BY t1.b; eval $query; eval explain $query; let $query= SELECT * FROM t1 JOIN vo_2 AS dt ON t1.a=dt.a ORDER BY t1.b; eval $query; eval explain $query; # Disallowed: Subquery in SELECT list: let $query= SELECT * FROM t1 JOIN vx AS dt ON t1.a=dt.a; eval $query; eval explain $query; # Enable and disable derived table merging: SET @optimizer_switch_saved= @@optimizer_switch; SET @@optimizer_switch="derived_merge=off"; let $query= SELECT * FROM (t1 JOIN t2 USING (a)) JOIN v12_1 AS dt ON t1.a=dt.a; eval $query; eval explain $query; SET @@optimizer_switch="derived_merge=on"; eval $query; eval explain $query; SET @@optimizer_switch= @optimizer_switch_saved; DROP VIEW v2, v2_sj, v12_1, v12_2, v12_3; DROP VIEW vu_1, vu_2, vd_1, va_1, vg_1, vh_1, vl_1; DROP VIEW vlo_1, vrow, vo_1, vo_2, vx; DROP TABLE t1, t2; # Views with derived tables # ========================= CREATE TABLE t1(a INTEGER, b INTEGER); CREATE TABLE t2(a INTEGER); INSERT INTO t1 VALUES (1, 10), (2, 20), (2, 21), (3, NULL), (4, 40), (4, 41), (4, 42), (4, 43), (4, 44); INSERT INTO t2 VALUES (1), (2), (3), (4), (5), (NULL); # Simple derived table: let $derived= (SELECT * FROM t2) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with WHERE clause: let $derived= (SELECT * FROM t1 WHERE b=a*10) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with GROUP BY clause: let $derived= (SELECT a, SUM(b) AS s, COUNT(*) AS c FROM t1 GROUP BY a ORDER BY a) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with DISTINCT clause: let $derived= (SELECT DISTINCT a FROM t1) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with LIMIT and OFFSET: let $derived= (SELECT * FROM t1 LIMIT 3 OFFSET 3) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with UNION clause: let $derived= (SELECT DISTINCT a FROM t1 UNION ALL SELECT a FROM t2) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with scalar subquery in WHERE clause: let $derived= (SELECT * FROM t1 WHERE (SELECT a FROM t1 LIMIT 1) = b/10) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with IN subquery in WHERE clause: let $derived= (SELECT * FROM t1 WHERE a IN (SELECT a FROM t2 WHERE a % 2 = 0)) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with scalar subquery in SELECT list: let $derived= (SELECT a, (SELECT a FROM t2 WHERE a=t1.a) FROM t1 WHERE b IN (SELECT a*10 FROM t2)) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; # Derived table with scalar subquery, cardinality violation: let $derived= (SELECT a, (SELECT a FROM t2) FROM t1 WHERE b=a*10) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1; let $q= SELECT * FROM $derived; --error ER_SUBQUERY_NO_1_ROW eval $qv; --error ER_SUBQUERY_NO_1_ROW eval $q; DROP VIEW v1; # Derived table that is joined: let $derived= (SELECT a, b FROM t1 WHERE b IN (SELECT a*10 FROM t2)) AS dt; eval CREATE VIEW v1 AS SELECT * FROM $derived; let $qv= SELECT * FROM v1 JOIN t2 ON v1.a=t2.a; let $q= SELECT * FROM $derived JOIN t2 ON dt.a=t2.a; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; DROP TABLE t1, t2; # Views with subqueries in select list # ==================================== CREATE TABLE t1(a INTEGER, b INTEGER); CREATE TABLE t2(a INTEGER); INSERT INTO t1 VALUES (1, 10), (2, 20), (2, 21), (3, NULL), (4, 40), (4, 41), (4, 42), (4, 43), (4, 44); INSERT INTO t2 VALUES (1), (2), (3), (4), (5), (NULL); let $qv= SELECT * FROM v1; let $qva= SELECT a FROM v1; # Non-correlated scalar subquery: let $q= SELECT a, b, (SELECT 1 FROM t2 WHERE a=3) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Non-correlated scalar subquery, empty result: let $q= SELECT a, b, (SELECT 1 FROM t2 WHERE a=6) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Non-correlated scalar subquery, multiple rows: let $q= SELECT a, b, (SELECT 1 FROM t2 WHERE a>=3) AS s FROM t1; eval CREATE VIEW v1 AS $q; --error ER_SUBQUERY_NO_1_ROW eval $qv; eval $qva; --error ER_SUBQUERY_NO_1_ROW eval $q; eval explain $qva; DROP VIEW v1; # Non-correlated table subquery: let $q= SELECT a, b, a IN (SELECT 1 FROM t2 WHERE a=6) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Aggregated scalar subquery: let $q= SELECT a, b, (SELECT COUNT(*) FROM t2) AS c FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Aggregated table subquery: let $q= SELECT a, b, a IN (SELECT COUNT(*) FROM t2) AS c FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Scalar subquery with outer reference: let $q= SELECT a, b, (SELECT a*2 FROM t2 WHERE a=t1.a) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Table subquery with outer reference: let $q= SELECT a, b, EXISTS (SELECT a*2 FROM t2 WHERE a=t1.a) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Aggregated scalar subquery with outer reference: let $q= SELECT a, b, (SELECT COUNT(*) FROM t1 AS t2 WHERE a=t1.a) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Aggregated table subquery with outer reference: let $q= SELECT a, b, EXISTS (SELECT COUNT(*) FROM t1 AS t2 WHERE a=t1.a) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Outer aggregated query with scalar subquery: let $q= SELECT (SELECT a FROM t2 WHERE a=FLOOR(COUNT(t1.a)/2)) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; let $q= SELECT COUNT(*) AS a, (SELECT a FROM t2 WHERE a=FLOOR(COUNT(t1.a)/2)) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Outer aggregated query with table subquery: let $q= SELECT a IN (SELECT a FROM t2 WHERE a=FLOOR(COUNT(t1.a)/2)) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $q; eval explain $qv; eval explain $q; DROP VIEW v1; let $q= SELECT COUNT(*) AS a, a IN (SELECT a FROM t2 WHERE a=FLOOR(COUNT(t1.a)/2)) AS s FROM t1; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Outer grouped query with scalar subquery: let $q= SELECT a, COUNT(*) AS c, (SELECT a FROM t2 WHERE a=COUNT(t1.a)) AS s FROM t1 GROUP BY a; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; # Outer grouped query with table subquery: let $q= SELECT a, COUNT(*) AS c, a IN (SELECT a FROM t2 WHERE a=COUNT(t1.a)) AS s FROM t1 GROUP BY a; eval CREATE VIEW v1 AS $q; eval $qv; eval $qva; eval $q; eval explain $qv; eval explain $qva; eval explain $q; DROP VIEW v1; DROP TABLE t1, t2; --echo # --echo # Bug#19789450 Assert fail in add_key_field --echo # CREATE TABLE t1 ( pk int NOT NULL, col_date_key date DEFAULT NULL, PRIMARY KEY (pk), KEY col_date_key (col_date_key) ) ; CREATE TABLE t2 ( pk int NOT NULL, col_time_key time DEFAULT NULL, col_datetime_key datetime DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_key (col_time_key), KEY col_datetime_key (col_datetime_key) ); CREATE ALGORITHM=MERGE VIEW v1 AS SELECT col_date_key FROM t1 WHERE (pk, pk, col_date_key) IN (SELECT col_datetime_key, col_time_key, col_time_key FROM t2 WHERE pk <= 7); SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1, t2; --echo # --echo # BUG#14117018 - MYSQL SERVER CREATES INVALID VIEW DEFINITION --echo # BUG#18405221 - SHOW CREATE VIEW OUTPUT INCCORRECT --echo # CREATE VIEW v1 AS (SELECT '' FROM DUAL); CREATE VIEW v2 AS (SELECT 'BUG#14117018' AS col1 FROM DUAL) UNION ALL (SELECT '' FROM DUAL); CREATE VIEW v3 AS (SELECT 'BUG#14117018' AS col1 FROM DUAL) UNION ALL (SELECT '' FROM DUAL) UNION ALL (SELECT '' FROM DUAL); CREATE VIEW v4 AS (SELECT 'BUG#14117018' AS col1 FROM DUAL) UNION ALL (SELECT '' AS col2 FROM DUAL) UNION ALL (SELECT '' FROM DUAL); --echo # Name for the column in select1 is set properly with or --echo # without this fix. SHOW CREATE VIEW v1; --echo # Name for the column in select2 is set with this fix. --echo # Without this fix, name would not have set for the --echo # columns in select2. SHOW CREATE VIEW v2; --echo # Name for the field item in select2 & select3 is set with this fix. --echo # Without this fix, name would not have set for the --echo # columns in select2 & select3. SHOW CREATE VIEW v3; --echo # Name for the field item in select3 is set with this fix. --echo # Without this fix, name would not have set for the --echo # columns in select3. SHOW CREATE VIEW v4; DROP VIEW v1, v2, v3, v4; --echo # Bug#20087932 Assert fail in Join_tab_compare_straight::operator() CREATE TABLE t1 ( pk int NOT NULL, col_varchar_key varchar(1) NOT NULL, PRIMARY KEY (pk) ); CREATE TABLE t2 ( pk int NOT NULL, col_varchar_key varchar(1) NOT NULL, col_varchar_nokey varchar(1) NOT NULL, PRIMARY KEY (pk) ); CREATE TABLE t3 ( pk int NOT NULL, col_int_key int NOT NULL, col_varchar_nokey varchar(1) NOT NULL, PRIMARY KEY (pk) ); CREATE VIEW v2 AS SELECT * FROM t2; let $query= SELECT STRAIGHT_JOIN alias1.pk FROM t2 AS alias1 RIGHT JOIN (SELECT sq1_alias2.* FROM t1 AS sq1_alias1 RIGHT OUTER JOIN v2 AS sq1_alias2 ON sq1_alias2.col_varchar_key = sq1_alias1.col_varchar_key AND sq1_alias2.col_varchar_nokey IN (SELECT c_sq1_alias1.col_varchar_nokey AS c_sq1_field1 FROM t3 AS c_sq1_alias1 WHERE c_sq1_alias1.col_int_key <> c_sq1_alias1.col_int_key ) ) AS alias2 ON alias2.col_varchar_key = alias1.col_varchar_key; eval explain $query; eval $query; DROP VIEW v2; DROP TABLE t1, t2, t3; # - Test cases for INSERT, UPDATE and DELETE against composite views CREATE TABLE t0(x INTEGER); INSERT INTO t0 VALUES(0); CREATE TABLE t1(a1 INTEGER PRIMARY KEY, b1 INTEGER); CREATE TABLE t2(a2 INTEGER PRIMARY KEY, b2 INTEGER); CREATE VIEW v0 AS SELECT DISTINCT x FROM t0; CREATE VIEW vmat1 AS SELECT DISTINCT * FROM t1; CREATE VIEW vmat2 AS SELECT DISTINCT * FROM t2; CREATE VIEW vtt AS SELECT * FROM t1 JOIN t2 ON t1.a1=t2.a2; CREATE VIEW vtr AS SELECT * FROM t1 JOIN vmat2 AS dt2 ON t1.a1=dt2.a2; CREATE VIEW vtrd AS SELECT * FROM t1 JOIN (SELECT DISTINCT * FROM t2) AS dt2 ON t1.a1=dt2.a2; CREATE VIEW vrt AS SELECT * FROM vmat1 AS dt1 JOIN t2 ON dt1.a1=t2.a2; CREATE VIEW vrtd AS SELECT * FROM (SELECT DISTINCT * FROM t1) AS dt1 JOIN t2 ON dt1.a1=t2.a2; CREATE VIEW vrr AS SELECT * FROM vmat1 AS dt1 JOIN vmat2 AS dt2 ON dt1.a1=dt2.a2; CREATE VIEW vrrd AS SELECT * FROM (SELECT DISTINCT * FROM t1) AS dt1 JOIN (SELECT DISTINCT * FROM t2) AS dt2 ON dt1.a1=dt2.a2; # v0 - Dummy view for use in UPDATE # vtt - View defined over two tables # vtr - View defined over a table and a read-only view # vrt - View defined over a read-only view and a table # vrr - View defined over two read-only views # vtrd, vrtd, vrrd: Like above but using derived tables instead of views INSERT INTO vtt(a1,b1) VALUES (1,100); INSERT INTO vtt(a2,b2) VALUES (1,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vtr(a1,b1) VALUES (2,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vtrd(a1,b1) VALUES (3,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vtr(a2,b2) VALUES (2,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vtrd(a2,b2) VALUES (3,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrt(a1,b1) VALUES (4,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrtd(a1,b1) VALUES (5,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrt(a2,b2) VALUES (4,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrtd(a2,b2) VALUES (5,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrr(a1,b1) VALUES (6,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrrd(a1,b1) VALUES (7,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrr(a2,b2) VALUES (6,100); --error ER_NON_INSERTABLE_TABLE INSERT INTO vrrd(a2,b2) VALUES (7,100); SELECT * FROM vtt; DELETE FROM t1; DELETE FROM t2; INSERT INTO vtt(a1,b1) SELECT 1,100; INSERT INTO vtt(a2,b2) SELECT 1,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vtr(a1,b1) SELECT 2,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vtrd(a1,b1) SELECT 3,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vtr(a2,b2) SELECT 2,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vtrd(a2,b2) SELECT 3,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrt(a1,b1) SELECT 4,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrtd(a1,b1) SELECT 5,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrt(a2,b2) SELECT 4,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrtd(a2,b2) SELECT 5,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrr(a1,b1) SELECT 6,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrrd(a1,b1) SELECT 7,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrr(a2,b2) SELECT 6,100; --error ER_NON_INSERTABLE_TABLE INSERT INTO vrrd(a2,b2) SELECT 7,100; SELECT * FROM vtt; DELETE FROM t1; DELETE FROM t2; INSERT INTO t1 VALUES (1,100), (2,100), (3,100), (4,100), (5,100), (6,100), (7,100), (8,100), (9,100), (10,100), (11,100), (12,100), (13,100), (14,100); INSERT INTO t2 VALUES (1,100), (2,100), (3,100), (4,100), (5,100), (6,100), (7,100), (8,100), (9,100), (10,100), (11,100), (12,100), (13,100), (14,100); --error ER_VIEW_DELETE_MERGE_VIEW DELETE FROM vtt WHERE a1=1; --error ER_VIEW_DELETE_MERGE_VIEW DELETE FROM vtr WHERE a1=2; --error ER_VIEW_DELETE_MERGE_VIEW DELETE FROM vtrd WHERE a1=3; --error ER_VIEW_DELETE_MERGE_VIEW DELETE FROM vrt WHERE a1=4; --error ER_VIEW_DELETE_MERGE_VIEW DELETE FROM vrtd WHERE a1=5; --error ER_NON_UPDATABLE_TABLE DELETE FROM vrr WHERE a1=6; --error ER_NON_UPDATABLE_TABLE DELETE FROM vrrd WHERE a1=7; --error ER_VIEW_DELETE_MERGE_VIEW DELETE vtt FROM vtt WHERE a1=8; --error ER_VIEW_DELETE_MERGE_VIEW DELETE vtr FROM vtr WHERE a1=9; --error ER_VIEW_DELETE_MERGE_VIEW DELETE vtrd FROM vtrd WHERE a1=10; --error ER_VIEW_DELETE_MERGE_VIEW DELETE vrt FROM vrt WHERE a1=11; --error ER_VIEW_DELETE_MERGE_VIEW DELETE vrtd FROM vrtd WHERE a1=12; --error ER_NON_UPDATABLE_TABLE DELETE vrr FROM vrr WHERE a1=13; --error ER_NON_UPDATABLE_TABLE DELETE vrrd FROM vrrd WHERE a1=14; SELECT * FROM vtt; DELETE FROM t1; DELETE FROM t2; INSERT INTO t1 VALUES (1,100); INSERT INTO t2 VALUES (1,100); UPDATE vtt SET b1=b1+1 WHERE a1=1; UPDATE vtt SET b2=b2+1 WHERE a2=1; UPDATE vtr SET b1=b1+1 WHERE a1=1; UPDATE vtrd SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vtr SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vtrd SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrt SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrtd SET b1=b1+1 WHERE a1=1; UPDATE vrt SET b2=b2+1 WHERE a2=1; UPDATE vrtd SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrr SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrrd SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrr SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrrd SET b2=b2+1 WHERE a2=1; UPDATE vtt, v0 AS dt SET b1=b1+1 WHERE a1=1; UPDATE vtt, v0 SET b2=b2+1 WHERE a2=1; UPDATE vtr, v0 SET b1=b1+1 WHERE a1=1; UPDATE vtrd, v0 SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vtr, v0 SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vtrd, v0 SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrt, v0 SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrtd, v0 SET b1=b1+1 WHERE a1=1; UPDATE vrt, v0 SET b2=b2+1 WHERE a2=1; UPDATE vrtd, v0 SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrr, v0 SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrrd, v0 SET b1=b1+1 WHERE a1=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrr, v0 SET b2=b2+1 WHERE a2=1; --error ER_NON_UPDATABLE_TABLE UPDATE vrrd, v0 SET b2=b2+1 WHERE a2=1; SELECT * FROM vtt; DROP VIEW v0, vtt, vtr, vrt, vrr, vmat1, vmat2; DROP VIEW vtrd, vrtd, vrrd; DROP TABLE t0, t1, t2; --echo # --echo # Bug#20407961 VIEW'S CHECK OPTION SOMETIMES NOT HONOURED IF INCLUDED IN A TOP VIEW --echo # create table t1 (a varchar(100)); --echo # n/c/l letter suffix means: no/cascaded/local check option create view v1n as select * from t1 where a like '%v1n%'; create view v2c as select * from t1 where a like '%v2c%' with check option; show create view v2c; create view v3l as select * from t1 where a like '%v3l%' with local check option; show create view v3l; --echo # The basic, single-view feature works: insert into t1 values(''); insert into v1n values(''); --error ER_VIEW_CHECK_FAILED insert into v2c values(''); insert into v2c values('v2c'); --error ER_VIEW_CHECK_FAILED insert into v3l values(''); insert into v3l values('v3l'); --echo # We also test UPDATE of the successfully inserted row update v1n set a='_'; --echo # if this update to v2c was allowed, it would be produce a row in t1 --echo # not matching v2c's filter, which is against the goal of CHECK --echo # OPTION. --error ER_VIEW_CHECK_FAILED update v2c set a=''; --error ER_VIEW_CHECK_FAILED update v3l set a=''; --echo # Top view without no CHECK OPTION, still CHECK OPTION conditions --echo # of underlying views are checked. create view v4n as select * from v2c where a like '%v4n%'; create view v5n as select * from v3l where a like '%v5n%'; --echo # The view's nesting structure is: --echo # v4n -> v2c -> t1 --echo # We present the query with needed tags, verify that it passes, --echo # then we take each tag away and verify that it fails. insert into v4n values('v2c'); --error ER_VIEW_CHECK_FAILED insert into v4n values(''); --echo # To check UPDATE on v4n, we need to update a row originally --echo # visible in v4n, so we create it: insert into v4n values('v4n v2c'); --echo # This row can legally disappear from v4n: update v4n set a='v2c'; insert into v4n values('v4n v2c'); --echo # But this row cannot disappear from v2c: --error ER_VIEW_CHECK_FAILED update v4n set a='v4n'; --echo # Lest we delete it: delete from v4n; --echo # v5n -> v3l -> t1 insert into v5n values('v3l'); --error ER_VIEW_CHECK_FAILED insert into v5n values(''); --echo # Top view with LOCAL CHECK OPTION, still CHECK OPTION conditions --echo # of underlying views are checked. create view v4l as select * from v2c where a like '%v4l%' with local check option; create view v5l as select * from v3l where a like '%v5l%' with local check option; --echo # v4l -> v2c -> t1 insert into v4l values('v4l v2c'); --error ER_VIEW_CHECK_FAILED insert into v4l values('v2c'); --error ER_VIEW_CHECK_FAILED update v4l set a='v2c'; --error ER_VIEW_CHECK_FAILED insert into v4l values('v4l'); --error ER_VIEW_CHECK_FAILED update v4l set a='v4l'; --echo # v5l -> v3l -> t1 insert into v5l values('v5l v3l'); --error ER_VIEW_CHECK_FAILED insert into v5l values('v3l'); --error ER_VIEW_CHECK_FAILED update v5l set a='v3l'; --error ER_VIEW_CHECK_FAILED insert into v5l values('v5l'); --error ER_VIEW_CHECK_FAILED update v5l set a='v5l'; --echo # CASCADED makes all filtering conditions a requirement create view v6c as select * from v5n where a like '%v6c%' with cascaded check option; --echo # v6c -> v5n -> v3l -> t1 insert into v6c values('v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v6c values('v5n v3l'); --error ER_VIEW_CHECK_FAILED update v6c set a='v5n v3l'; --error ER_VIEW_CHECK_FAILED insert into v6c values('v6c v3l'); --error ER_VIEW_CHECK_FAILED update v6c set a='v6c v3l'; --error ER_VIEW_CHECK_FAILED insert into v6c values('v6c v5n'); --error ER_VIEW_CHECK_FAILED update v6c set a='v6c v5n'; --echo # Also true if top view has no check option: create view v7n as select * from v6c where a like '%v7n%'; --echo # v7n -> v6c -> v5n -> v3l -> t1 insert into v7n values('v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v7n values('v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v7n values('v6c v3l'); --error ER_VIEW_CHECK_FAILED insert into v7n values('v6c v5n'); --echo # Make a visible row to update: insert into v7n values('v7n v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED update v7n set a='v7n v5n v3l'; --error ER_VIEW_CHECK_FAILED update v7n set a='v7n v6c v3l'; --error ER_VIEW_CHECK_FAILED update v7n set a='v7n v6c v5nĂ '; --echo # Also true if top view has LOCAL: create view v8l as select * from v7n where a like '%v8l%' with local check option; --echo # v8l -> v7n -> v6c -> v5n -> v3l -> t1 insert into v8l values('v8l v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v8l values('v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v8l values('v8l v5n v3l'); --error ER_VIEW_CHECK_FAILED insert into v8l values('v8l v6c v3l'); --error ER_VIEW_CHECK_FAILED insert into v8l values('v8l v6c v5n'); --echo # Make a visible row (=> satisfy v7n's WHERE clause): insert into v8l values('v8l v7n v6c v5n v3l'); --error ER_VIEW_CHECK_FAILED update v8l set a='v7n v6c v5n v3l'; --error ER_VIEW_CHECK_FAILED update v8l set a='v8l v7n v5n v3l'; --error ER_VIEW_CHECK_FAILED update v8l set a='v8l v7n v6c v3l'; --error ER_VIEW_CHECK_FAILED update v8l set a='v8l v7n v6c v5n'; drop view v1n,v2c,v3l,v4n,v5n,v4l,v5l,v6c,v7n,v8l; drop table t1; --echo # Bug#20982756 Crash in Table_list::fetch_number_of_rows CREATE TABLE t1(a INTEGER) engine=innodb; CREATE VIEW v3 AS SELECT 1 FROM t1; CREATE VIEW v2 AS SELECT 1 FROM v3 LEFT JOIN t1 ON 1; PREPARE s FROM "set @a:=(SELECT 1 FROM t1,v2);"; EXECUTE s; EXECUTE s; DROP VIEW v2,v3; DROP TABLE t1; --echo # Bug#21097485 *insert_table_ref && (*insert_table_ref)->is_insertable CREATE TABLE t1 (r INTEGER) engine=innodb; CREATE VIEW v1 AS SELECT 1 AS z from t1; --error ER_NONUPDATEABLE_COLUMN INSERT INTO v1(z) VALUES(1); DROP VIEW v1; DROP TABLE t1; --echo # Bug#21277074: crash (segfault) in THD::change_item_tree on exec of prep CREATE TABLE t (i INTEGER); PREPARE s1 FROM "SELECT (SELECT MAX(i)) AS field1 FROM (SELECT * FROM t) AS table1" ; EXECUTE s1; CREATE VIEW v AS SELECT * FROM t; PREPARE s2 FROM "SELECT (SELECT MAX(i)) AS field1 FROM v AS table1" ; EXECUTE s2; DEALLOCATE PREPARE s1; DEALLOCATE PREPARE s2; DROP VIEW v; DROP TABLE t; --echo # --echo # BUG#19886430: VIEW CREATION WITH NAMED COLUMNS, OVER UNION, --echo # IS REJECTED --echo # Without the patch, reports an error. CREATE VIEW v1 (fld1, fld2) AS SELECT 1 AS a, 2 AS b UNION ALL SELECT 1 AS a, 1 AS a; --echo # The column names are explicitly specified and not duplicates, hence --echo # succeeds. CREATE VIEW v2 (fld1, fld2) AS SELECT 1 AS a, 2 AS a UNION ALL SELECT 1 AS a, 1 AS a; --echo # The column name in the first SELECT are not duplicates, hence succeeds. CREATE VIEW v3 AS SELECT 1 AS a, 2 AS b UNION ALL SELECT 1 AS a, 1 AS a; --echo # Should report an error, since the explicitly specified column names are --echo # duplicates. --error ER_DUP_FIELDNAME CREATE VIEW v4 (fld1, fld1) AS SELECT 1 AS a, 2 AS b UNION ALL SELECT 1 AS a, 1 AS a; --echo # Should report an error, since duplicate column name is specified in the --echo # First SELECT. --error ER_DUP_FIELDNAME CREATE VIEW v4 AS SELECT 1 AS a, 2 AS a UNION ALL SELECT 1 AS a, 1 AS a; --echo # Cleanup DROP VIEW v1, v2, v3; --echo # --echo # Bug #22108567 ASSERTION `TABLE != 0' FAILED --echo # PREPARE X FROM 'CREATE VIEW bug22108567_v1 AS SELECT 1 FROM (SELECT 1) AS D1'; EXECUTE X; DROP VIEW bug22108567_v1; # Check that all connections opened by test cases in this file are really # gone so execution of other tests won't be affected by their presence. --source include/wait_until_count_sessions.inc --echo # --echo # BUG#21877062: MIN/MAX IN VIEW ON TIMESTAMDIFF IN VIEW CONFUSES --echo # OPTIMIZER TO THROW SYNTAX ERROR --echo # CREATE TABLE t(ts1 DATETIME(6), ts2 DATETIME(6)); INSERT INTO t VALUES('2016-01-11 09:15:25','2016-01-11 21:15:25'); CREATE VIEW v1 AS SELECT TIMESTAMPDIFF(MICROSECOND, ts1, ts2) duration FROM t; --echo # Without the patch, a syntax error is reported. SELECT * FROM v1; CREATE VIEW v2 AS SELECT MIN(duration) AS dmin, MAX(duration) AS dmax FROM v1; DROP VIEW v1, v2; DROP TABLE t;
Close