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.73.22
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 /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
1st.result
597
B
-rw-r--r--
acl_tables_errors_debug.result
8.93
KB
-rw-r--r--
alias.result
13.58
KB
-rw-r--r--
almost_full.result
1.11
KB
-rw-r--r--
alter_table-big.result
5.45
KB
-rw-r--r--
alter_table.result
154.41
KB
-rw-r--r--
analyze.result
3.69
KB
-rw-r--r--
ansi.result
1.92
KB
-rw-r--r--
archive-big.result
616
B
-rw-r--r--
archive.result
525.18
KB
-rw-r--r--
archive_bitfield.result
4.26
KB
-rw-r--r--
archive_debug.result
355
B
-rw-r--r--
archive_gis.result
25.98
KB
-rw-r--r--
archive_no_symlink.result
882
B
-rw-r--r--
archive_plugin.result
531
B
-rw-r--r--
archive_symlink.result
2.3
KB
-rw-r--r--
auth_rpl.result
1.85
KB
-rw-r--r--
auto_increment.result
12.11
KB
-rw-r--r--
backup.result
4.29
KB
-rw-r--r--
bench_count_distinct.result
557
B
-rw-r--r--
big_test.require
17
B
-rw-r--r--
bigint.result
23.33
KB
-rw-r--r--
binary.result
6.09
KB
-rw-r--r--
binary_to_hex.result
5.87
KB
-rw-r--r--
binlog_tx_isolation.result
1.71
KB
-rw-r--r--
blackhole.result
613
B
-rw-r--r--
blackhole_plugin.result
565
B
-rw-r--r--
bool.result
2.67
KB
-rw-r--r--
bootstrap.result
525
B
-rw-r--r--
bug12368203.result
2.77
KB
-rw-r--r--
bug12427262.result
1.86
KB
-rw-r--r--
bug12969156.result
952
B
-rw-r--r--
bug17076131.result
322
B
-rw-r--r--
bug33509.result
2.31
KB
-rw-r--r--
bug39022.result
1.2
KB
-rw-r--r--
bug46080.result
669
B
-rw-r--r--
bug46261.result
353
B
-rw-r--r--
bug46760.result
1.26
KB
-rw-r--r--
bug47671.result
287
B
-rw-r--r--
bug58669.result
480
B
-rw-r--r--
bulk_replace.result
281
B
-rw-r--r--
cache_innodb.result
6.96
KB
-rw-r--r--
case.result
10.63
KB
-rw-r--r--
case_insensitive_file_system.r...
46
B
-rw-r--r--
case_sensitive_file_system.req...
47
B
-rw-r--r--
cast.result
16.27
KB
-rw-r--r--
change_user.result
2.82
KB
-rw-r--r--
charset.result
2.14
KB
-rw-r--r--
check.result
2.05
KB
-rw-r--r--
check_auto_permission.result
261
B
-rw-r--r--
check_var_limit.require
8
B
-rw-r--r--
client_xml.result
2.38
KB
-rw-r--r--
comment_column.result
141.21
KB
-rw-r--r--
comment_column2.result
355.68
KB
-rw-r--r--
comment_index.result
173.32
KB
-rw-r--r--
comment_table.result
28.95
KB
-rw-r--r--
comments.result
2.34
KB
-rw-r--r--
commit.result
14.83
KB
-rw-r--r--
commit_1innodb.result
19.59
KB
-rw-r--r--
compare.result
5.07
KB
-rw-r--r--
compress.result
66.24
KB
-rw-r--r--
concurrent_innodb_safelog.resu...
32.01
KB
-rw-r--r--
concurrent_innodb_unsafelog.re...
31.74
KB
-rw-r--r--
condition_filter.result
2.17
KB
-rw-r--r--
connect.result
11.02
KB
-rw-r--r--
connect_debug.result
1.46
KB
-rw-r--r--
consistent_snapshot.result
1.14
KB
-rw-r--r--
constraints.result
2.56
KB
-rw-r--r--
count_distinct.result
8.04
KB
-rw-r--r--
count_distinct2.result
2.21
KB
-rw-r--r--
count_distinct3.result
278
B
-rw-r--r--
create-big.result
7.6
KB
-rw-r--r--
create.result
71.42
KB
-rw-r--r--
create_not_windows.result
961
B
-rw-r--r--
create_select_tmp.result
846
B
-rw-r--r--
create_w_max_indexes_64.result
84.46
KB
-rw-r--r--
csv.result
59.08
KB
-rw-r--r--
csv_alter_table.result
1.17
KB
-rw-r--r--
csv_not_null.result
1.93
KB
-rw-r--r--
ctype_ascii.result
2.5
KB
-rw-r--r--
ctype_big5.result
34.28
KB
-rw-r--r--
ctype_binary.result
82.78
KB
-rw-r--r--
ctype_collate.result
18.3
KB
-rw-r--r--
ctype_cp1250_ch.result
22.29
KB
-rw-r--r--
ctype_cp1251.result
96.48
KB
-rw-r--r--
ctype_cp932.result
996
B
-rw-r--r--
ctype_cp932_binlog_row.result
734
B
-rw-r--r--
ctype_cp932_binlog_stm.result
251.36
KB
-rw-r--r--
ctype_create.result
3.12
KB
-rw-r--r--
ctype_errors.result
1.66
KB
-rw-r--r--
ctype_eucjpms.result
400.48
KB
-rw-r--r--
ctype_euckr.result
435.54
KB
-rw-r--r--
ctype_filename.result
324
B
-rw-r--r--
ctype_filesystem.result
341
B
-rw-r--r--
ctype_gb18030.result
69.33
KB
-rw-r--r--
ctype_gb18030_binlog.result
909
B
-rw-r--r--
ctype_gb18030_conversion.resul...
1.17
MB
-rw-r--r--
ctype_gb18030_encoding_cn.resu...
41.39
KB
-rw-r--r--
ctype_gb18030_encoding_utf8.re...
40.64
KB
-rw-r--r--
ctype_gb18030_ligatures.result
24.81
KB
-rw-r--r--
ctype_gb2312.result
33.73
KB
-rw-r--r--
ctype_gbk.result
50.07
KB
-rw-r--r--
ctype_gbk_binlog.result
633
B
-rw-r--r--
ctype_hebrew.result
254
B
-rw-r--r--
ctype_latin1.result
119.29
KB
-rw-r--r--
ctype_latin1_de.result
15.74
KB
-rw-r--r--
ctype_latin2.result
13.71
KB
-rw-r--r--
ctype_latin2_ch.result
25.11
KB
-rw-r--r--
ctype_ldml.result
28.13
KB
-rw-r--r--
ctype_like_range.result
80.89
KB
-rw-r--r--
ctype_many.result
41.87
KB
-rw-r--r--
ctype_mb.result
2.13
KB
-rw-r--r--
ctype_recoding.result
9.6
KB
-rw-r--r--
ctype_sjis.result
195.81
KB
-rw-r--r--
ctype_tis620.result
101.02
KB
-rw-r--r--
ctype_uca.result
155.4
KB
-rw-r--r--
ctype_ucs.result
143.96
KB
-rw-r--r--
ctype_ucs2_def.result
1.05
KB
-rw-r--r--
ctype_ujis.result
365.3
KB
-rw-r--r--
ctype_ujis_ucs2.result
548.6
KB
-rw-r--r--
ctype_utf16.result
47.3
KB
-rw-r--r--
ctype_utf16_def.result
273
B
-rw-r--r--
ctype_utf16_uca.result
72.47
KB
-rw-r--r--
ctype_utf16le.result
52.96
KB
-rw-r--r--
ctype_utf32.result
50.55
KB
-rw-r--r--
ctype_utf32_uca.result
75.29
KB
-rw-r--r--
ctype_utf8.result
169.69
KB
-rw-r--r--
ctype_utf8mb4.result
83.57
KB
-rw-r--r--
ctype_utf8mb4_heap.result
75.01
KB
-rw-r--r--
ctype_utf8mb4_innodb.result
77.85
KB
-rw-r--r--
ctype_utf8mb4_myisam.result
77.43
KB
-rw-r--r--
ctype_utf8mb4_uca.result
38.82
KB
-rw-r--r--
daemonize_opt.result
14
B
-rw-r--r--
datadir_permission.result
1.09
KB
-rw-r--r--
date_formats.result
28.69
KB
-rw-r--r--
ddl_i18n_koi8r.result
123.56
KB
-rw-r--r--
ddl_i18n_utf8.result
126.58
KB
-rw-r--r--
deadlock_innodb.result
2.35
KB
-rw-r--r--
debug_sync.result
12.18
KB
-rw-r--r--
debug_sync2.result
1.15
KB
-rw-r--r--
default.result
8.17
KB
-rw-r--r--
delete.result
22.7
KB
-rw-r--r--
delete_all_rows.result
2.26
KB
-rw-r--r--
deprecate_eof.result
8
KB
-rw-r--r--
deprecated_features.result
2.03
KB
-rw-r--r--
derived.result
172.18
KB
-rw-r--r--
dirty_close.result
345
B
-rw-r--r--
disabled_replication.result
4.82
KB
-rw-r--r--
disabled_storage_engines.resul...
3.28
KB
-rw-r--r--
disconnect_on_expired_password...
1.42
KB
-rw-r--r--
disconnect_on_expired_password...
1.49
KB
-rw-r--r--
distinct.result
80.43
KB
-rw-r--r--
drop-no_root.result
454
B
-rw-r--r--
drop.result
6.71
KB
-rw-r--r--
drop_debug.result
485
B
-rw-r--r--
ds_mrr-big.result
2.93
KB
-rw-r--r--
dynamic_tracing.result
813
B
-rw-r--r--
empty_table.result
229
B
-rw-r--r--
enable_cleartext_plugin.result
1.4
KB
-rw-r--r--
endspace.result
7.25
KB
-rw-r--r--
eq_range_idx_stat.result
6.56
KB
-rw-r--r--
error_simulation.result
3.17
KB
-rw-r--r--
errors.result
6.11
KB
-rw-r--r--
events_1.result
28.3
KB
-rw-r--r--
events_2.result
17.79
KB
-rw-r--r--
events_and_binlog.result
297
B
-rw-r--r--
events_bugs.result
40.94
KB
-rw-r--r--
events_embedded.result
86
B
-rw-r--r--
events_grant.result
10.33
KB
-rw-r--r--
events_logs_tests.result
2.37
KB
-rw-r--r--
events_microsec.result
810
B
-rw-r--r--
events_restart.result
4.36
KB
-rw-r--r--
events_scheduling.result
3.11
KB
-rw-r--r--
events_stress.result
2.39
KB
-rw-r--r--
events_time_zone.result
5.4
KB
-rw-r--r--
events_trans.result
3.61
KB
-rw-r--r--
events_trans_notembedded.resul...
1.88
KB
-rw-r--r--
examined_rows.result
6.73
KB
-rw-r--r--
execution_constants.result
1.03
KB
-rw-r--r--
explain.result
39.39
KB
-rw-r--r--
explain_for_connection_crash.r...
1004
B
-rw-r--r--
explain_for_connection_rqg_jso...
87.48
KB
-rw-r--r--
explain_for_connection_rqg_tra...
35.98
KB
-rw-r--r--
explain_for_connection_small_j...
25.46
KB
-rw-r--r--
explain_for_connection_small_t...
10.3
KB
-rw-r--r--
explain_json_all.result
98.36
KB
-rw-r--r--
explain_json_none.result
102.18
KB
-rw-r--r--
explain_other.result
42.23
KB
-rw-r--r--
file_contents.result
181
B
-rw-r--r--
filesort_debug.result
4.59
KB
-rw-r--r--
filesort_merge.result
2.02
KB
-rw-r--r--
filesort_pack.result
675
B
-rw-r--r--
filter_single_col_idx_big.resu...
38.05
KB
-rw-r--r--
filter_single_col_idx_small.re...
42.99
KB
-rw-r--r--
fix_priv_tables.result
1.96
KB
-rw-r--r--
flush.result
13.78
KB
-rw-r--r--
flush2.result
1.06
KB
-rw-r--r--
flush_block_commit.result
1.47
KB
-rw-r--r--
flush_block_commit_notembedded...
872
B
-rw-r--r--
flush_read_lock.result
73.94
KB
-rw-r--r--
flush_read_lock_kill.result
1.12
KB
-rw-r--r--
flush_table.result
12.33
KB
-rw-r--r--
foreign_key.result
4.84
KB
-rw-r--r--
fulltext.result
32.93
KB
-rw-r--r--
fulltext2.result
7.54
KB
-rw-r--r--
fulltext3.result
815
B
-rw-r--r--
fulltext_cache.result
2.67
KB
-rw-r--r--
fulltext_distinct.result
1.45
KB
-rw-r--r--
fulltext_left_join.result
4
KB
-rw-r--r--
fulltext_multi.result
766
B
-rw-r--r--
fulltext_order_by.result
6.05
KB
-rw-r--r--
fulltext_plugin.result
229
B
-rw-r--r--
fulltext_update.result
1.11
KB
-rw-r--r--
fulltext_var.result
1.3
KB
-rw-r--r--
func_aes.result
12.97
KB
-rw-r--r--
func_aes_cfb1.result
4.5
KB
-rw-r--r--
func_aes_cfb128.result
4.57
KB
-rw-r--r--
func_aes_cfb8.result
4.5
KB
-rw-r--r--
func_aes_kdf_hkdf.result
3.94
KB
-rw-r--r--
func_aes_kdf_pbkdf2_hmac.resul...
6.79
KB
-rw-r--r--
func_aes_misc.result
8.46
KB
-rw-r--r--
func_aes_ofb.result
4.47
KB
-rw-r--r--
func_analyse.result
23.09
KB
-rw-r--r--
func_bitwise_ops.result
80.6
KB
-rw-r--r--
func_compress.result
5.46
KB
-rw-r--r--
func_concat.result
4.37
KB
-rw-r--r--
func_crypt.result
2.05
KB
-rw-r--r--
func_date_add.result
3.74
KB
-rw-r--r--
func_default.result
1.45
KB
-rw-r--r--
func_des_encrypt.result
2.68
KB
-rw-r--r--
func_digest.result
122.35
KB
-rw-r--r--
func_encrypt.result
19.82
KB
-rw-r--r--
func_encrypt_nossl.result
7.75
KB
-rw-r--r--
func_encrypt_ucs2.result
1.21
KB
-rw-r--r--
func_equal.result
1.27
KB
-rw-r--r--
func_found_rows.result
285
B
-rw-r--r--
func_gconcat.result
49.9
KB
-rw-r--r--
func_group.result
66.46
KB
-rw-r--r--
func_group_innodb.result
6.07
KB
-rw-r--r--
func_group_innodb_16k.result
693
B
-rw-r--r--
func_if.result
6.29
KB
-rw-r--r--
func_in_all.result
49.27
KB
-rw-r--r--
func_in_icp.result
48.91
KB
-rw-r--r--
func_in_icp_mrr.result
49.21
KB
-rw-r--r--
func_in_mrr.result
48.93
KB
-rw-r--r--
func_in_mrr_cost.result
48.65
KB
-rw-r--r--
func_in_none.result
48.6
KB
-rw-r--r--
func_isnull.result
827
B
-rw-r--r--
func_like.result
7.78
KB
-rw-r--r--
func_math.result
42.22
KB
-rw-r--r--
func_misc.result
36.8
KB
-rw-r--r--
func_op.result
2.12
KB
-rw-r--r--
func_regexp.result
4.47
KB
-rw-r--r--
func_rollback.result
13.02
KB
-rw-r--r--
func_sapdb.result
12.49
KB
-rw-r--r--
func_set.result
8.9
KB
-rw-r--r--
func_str.result
174.94
KB
-rw-r--r--
func_str_debug.result
349
B
-rw-r--r--
func_str_no_ps.result
1.3
KB
-rw-r--r--
func_system.result
2.9
KB
-rw-r--r--
func_test.result
14.47
KB
-rw-r--r--
func_time.result
71.47
KB
-rw-r--r--
func_timestamp.result
518
B
-rw-r--r--
func_weight_string.result
11.56
KB
-rw-r--r--
function_defaults.result
109.58
KB
-rw-r--r--
gcc296.result
528
B
-rw-r--r--
get_diagnostics.result
28.42
KB
-rw-r--r--
get_table_share.result
20.56
KB
-rw-r--r--
gis-debug.result
10.1
KB
-rw-r--r--
gis-precise.result
162.17
KB
-rw-r--r--
gis-rt-precise.result
2.42
KB
-rw-r--r--
gis-rtree.result
102.08
KB
-rw-r--r--
gis.result
131.8
KB
-rw-r--r--
grant.result
121.17
KB
-rw-r--r--
grant2.result
36.52
KB
-rw-r--r--
grant3.result
8.41
KB
-rw-r--r--
grant4.result
9.36
KB
-rw-r--r--
grant_alter_user.result
40.96
KB
-rw-r--r--
grant_alter_user_qa.result
98.38
KB
-rw-r--r--
grant_cache.result
6.71
KB
-rw-r--r--
grant_debug.result
8.5
KB
-rw-r--r--
grant_explain_non_select.resul...
10.27
KB
-rw-r--r--
grant_lowercase_fs.result
1.2
KB
-rw-r--r--
grant_user_lock.result
16.9
KB
-rw-r--r--
grant_user_lock_qa.result
41.4
KB
-rw-r--r--
greedy_optimizer.result
632.59
KB
-rw-r--r--
greedy_search.result
31.05
KB
-rw-r--r--
group_by.result
120.07
KB
-rw-r--r--
group_by_fd_no_prot.result
81.15
KB
-rw-r--r--
group_by_fd_ps_prot.result
61.28
KB
-rw-r--r--
group_min_max.result
189.52
KB
-rw-r--r--
group_min_max_innodb.result
25.09
KB
-rw-r--r--
gtid_next_xa_binlog_off.result
30.9
KB
-rw-r--r--
gtids_anonymous_trxs_violation...
687
B
-rw-r--r--
handler_innodb.result
41.58
KB
-rw-r--r--
handler_myisam.result
45.48
KB
-rw-r--r--
handler_read_last.result
1.15
KB
-rw-r--r--
have_big5.require
79
B
-rw-r--r--
have_binlog_format_mixed.requi...
40
B
-rw-r--r--
have_binlog_format_row.require
38
B
-rw-r--r--
have_binlog_format_statement.r...
44
B
-rw-r--r--
have_compress.require
38
B
-rw-r--r--
have_cp1250_ch.require
79
B
-rw-r--r--
have_cp1251.require
84
B
-rw-r--r--
have_cp866.require
82
B
-rw-r--r--
have_cp932.require
83
B
-rw-r--r--
have_crypt.require
35
B
-rw-r--r--
have_debug.require
8
B
-rw-r--r--
have_debug_sync.require
13
B
-rw-r--r--
have_eucjpms.require
87
B
-rw-r--r--
have_euckr.require
81
B
-rw-r--r--
have_gb18030.require
87
B
-rw-r--r--
have_gb2312.require
84
B
-rw-r--r--
have_gbk.require
78
B
-rw-r--r--
have_geometry.require
38
B
-rw-r--r--
have_koi8r.require
81
B
-rw-r--r--
have_latin2_ch.require
78
B
-rw-r--r--
have_local_infile.require
36
B
-rw-r--r--
have_log_bin.require
31
B
-rw-r--r--
have_met_timezone.require
43
B
-rw-r--r--
have_moscow_leap_timezone.requ...
46
B
-rw-r--r--
have_mysql_upgrade.result
21
B
-rw-r--r--
have_ndb_debug.require
17
B
-rw-r--r--
have_ndb_extra.require
14
B
-rw-r--r--
have_ndbapi_examples.require
19
B
-rw-r--r--
have_nodebug.require
8
B
-rw-r--r--
have_optimizer_switch.require
19
B
-rw-r--r--
have_outfile.require
55
B
-rw-r--r--
have_partition.require
42
B
-rw-r--r--
have_perror.require
14
B
-rw-r--r--
have_profiling.require
39
B
-rw-r--r--
have_query_cache.require
41
B
-rw-r--r--
have_sjis.require
81
B
-rw-r--r--
have_ssl.require
33
B
-rw-r--r--
have_ssl_is_yes_or_disabled_on...
43
B
-rw-r--r--
have_statement_timeout.require
47
B
-rw-r--r--
have_symlink.require
37
B
-rw-r--r--
have_tis620.require
81
B
-rw-r--r--
have_ucs2.require
80
B
-rw-r--r--
have_ujis.require
81
B
-rw-r--r--
have_utf16.require
82
B
-rw-r--r--
have_utf32.require
82
B
-rw-r--r--
have_utf8.require
80
B
-rw-r--r--
have_utf8mb4.require
86
B
-rw-r--r--
having.result
24.34
KB
-rw-r--r--
heap.result
24.75
KB
-rw-r--r--
heap_auto_increment.result
894
B
-rw-r--r--
heap_btree.result
11.76
KB
-rw-r--r--
heap_hash.result
20.83
KB
-rw-r--r--
help.result
6.64
KB
-rw-r--r--
help_verbose.result
326
B
-rw-r--r--
host_cache_size_functionality....
3.32
KB
-rw-r--r--
ignore_strict.result
30.82
KB
-rw-r--r--
implicit_char_to_num_conversio...
6.44
KB
-rw-r--r--
implicit_commit.result
18.33
KB
-rw-r--r--
import_schema_mismatch.result
478
B
-rw-r--r--
index_merge_delete.result
25.04
KB
-rw-r--r--
index_merge_innodb.result
124.56
KB
-rw-r--r--
index_merge_insert-and-replace...
14.54
KB
-rw-r--r--
index_merge_intersect_dml.resu...
5.85
KB
-rw-r--r--
index_merge_myisam.result
144.52
KB
-rw-r--r--
index_merge_update.result
17.22
KB
-rw-r--r--
information_schema-big.result
2.81
KB
-rw-r--r--
information_schema.result
107.92
KB
-rw-r--r--
information_schema_chmod.resul...
182
B
-rw-r--r--
information_schema_db.result
9.98
KB
-rw-r--r--
information_schema_inno.result
4.33
KB
-rw-r--r--
information_schema_parameters....
22.49
KB
-rw-r--r--
information_schema_part.result
11.97
KB
-rw-r--r--
information_schema_routines.re...
30.81
KB
-rw-r--r--
init_connect.result
3.57
KB
-rw-r--r--
init_file.result
323
B
-rw-r--r--
initialize-bug20350099.result
1.04
KB
-rw-r--r--
initialize-bug20504142.result
1.17
KB
-rw-r--r--
initialize-bug21335821.result
895
B
-rw-r--r--
initialize-errors.result
578
B
-rw-r--r--
initialize-ignore-db.result
742
B
-rw-r--r--
initialize-init-acls.result
1.12
KB
-rw-r--r--
initialize-sha256.result
1.09
KB
-rw-r--r--
initialize.result
3.89
KB
-rw-r--r--
initialize_gtid.result
465
B
-rw-r--r--
innodb_deadlock.result
1.25
KB
-rw-r--r--
innodb_disabled.result
208
B
-rw-r--r--
innodb_explain_json_non_select...
293.06
KB
-rw-r--r--
innodb_explain_json_non_select...
299.29
KB
-rw-r--r--
innodb_explain_non_select_all....
136.52
KB
-rw-r--r--
innodb_explain_non_select_none...
136.37
KB
-rw-r--r--
innodb_icp.result
32.81
KB
-rw-r--r--
innodb_icp_all.result
32.88
KB
-rw-r--r--
innodb_icp_none.result
32.72
KB
-rw-r--r--
innodb_ignore_builtin.result
354
B
-rw-r--r--
innodb_log_file_size_functiona...
2.79
KB
-rw-r--r--
innodb_mrr.result
25.74
KB
-rw-r--r--
innodb_mrr_all.result
25.88
KB
-rw-r--r--
innodb_mrr_cost.result
25.71
KB
-rw-r--r--
innodb_mrr_cost_all.result
25.85
KB
-rw-r--r--
innodb_mrr_cost_icp.result
25.82
KB
-rw-r--r--
innodb_mrr_icp.result
25.85
KB
-rw-r--r--
innodb_mrr_none.result
25.66
KB
-rw-r--r--
innodb_mysql_lock.result
4.05
KB
-rw-r--r--
innodb_mysql_lock2.result
21.4
KB
-rw-r--r--
innodb_mysql_sync.result
25.87
KB
-rw-r--r--
innodb_pk_extension_off.result
20.33
KB
-rw-r--r--
innodb_pk_extension_on.result
20.58
KB
-rw-r--r--
innodb_recovery_with_upper_cas...
1.21
KB
-rw-r--r--
insert.result
30.75
KB
-rw-r--r--
insert_debug.result
1.29
KB
-rw-r--r--
insert_notembedded.result
5.58
KB
-rw-r--r--
insert_select.result
15.34
KB
-rw-r--r--
insert_update.result
18.89
KB
-rw-r--r--
installdb-bad-cipher.result
128
B
-rw-r--r--
internal_tmp_disk_storage_engi...
146.97
KB
-rw-r--r--
ipv4_as_ipv6.result
23.83
KB
-rw-r--r--
ipv6.result
13.89
KB
-rw-r--r--
is_debug_build.require
32
B
-rw-r--r--
is_deprecation.result
558
B
-rw-r--r--
is_embedded.require
16
B
-rw-r--r--
isam.result
15.65
KB
-rw-r--r--
join.result
55.68
KB
-rw-r--r--
join_cache_bka.result
108.89
KB
-rw-r--r--
join_cache_bka_nixbnl.result
108.17
KB
-rw-r--r--
join_cache_bkaunique.result
109.32
KB
-rw-r--r--
join_cache_bnl.result
107.23
KB
-rw-r--r--
join_cache_nojb.result
106.25
KB
-rw-r--r--
join_crash.result
4.53
KB
-rw-r--r--
join_file_handler.result
1.04
KB
-rw-r--r--
join_nested.result
86.66
KB
-rw-r--r--
join_nested_bka.result
92.75
KB
-rw-r--r--
join_nested_bka_nixbnl.result
89.71
KB
-rw-r--r--
join_optimizer.result
2.54
KB
-rw-r--r--
join_outer.result
96.52
KB
-rw-r--r--
join_outer_bka.result
96.89
KB
-rw-r--r--
join_outer_bka_nixbnl.result
94.69
KB
-rw-r--r--
join_outer_innodb.result
3.27
KB
-rw-r--r--
key.result
22.58
KB
-rw-r--r--
key_cache.result
11.88
KB
-rw-r--r--
key_diff.result
1.15
KB
-rw-r--r--
key_primary.result
890
B
-rw-r--r--
keywords.result
6.63
KB
-rw-r--r--
kill.result
8.88
KB
-rw-r--r--
kill_debug.result
1.58
KB
-rw-r--r--
limit.result
8.31
KB
-rw-r--r--
loaddata.result
20.8
KB
-rw-r--r--
loaddata_autocom_innodb.result
651
B
-rw-r--r--
loadxml.result
2.7
KB
-rw-r--r--
locale.result
5.59
KB
-rw-r--r--
lock.result
14.09
KB
-rw-r--r--
lock_multi.result
63.2
KB
-rw-r--r--
lock_multi_bug38499.result
964
B
-rw-r--r--
lock_multi_bug38691.result
812
B
-rw-r--r--
lock_sync.result
27.44
KB
-rw-r--r--
lock_tables_lost_commit.result
150
B
-rw-r--r--
locking_service.result
31.09
KB
-rw-r--r--
log_errchk.result
663
B
-rw-r--r--
log_state.result
9.66
KB
-rw-r--r--
log_state_bug33693.result
111
B
-rw-r--r--
log_tables-big.result
996
B
-rw-r--r--
log_tables.result
41.81
KB
-rw-r--r--
log_tables_debug.result
770
B
-rw-r--r--
log_tables_upgrade.result
2.35
KB
-rw-r--r--
log_timestamps.result
71
B
-rw-r--r--
long_tmpdir.result
99
B
-rw-r--r--
lowercase0.require
45
B
-rw-r--r--
lowercase1.require
45
B
-rw-r--r--
lowercase2.require
45
B
-rw-r--r--
lowercase_fs_off.result
3.46
KB
-rw-r--r--
lowercase_fs_on.result
75
B
-rw-r--r--
lowercase_mixed_tmpdir.result
162
B
-rw-r--r--
lowercase_mixed_tmpdir_innodb....
190
B
-rw-r--r--
lowercase_table.result
3.24
KB
-rw-r--r--
lowercase_table2.result
8.66
KB
-rw-r--r--
lowercase_table4.result
4.63
KB
-rw-r--r--
lowercase_table5.result
673
B
-rw-r--r--
lowercase_table_grant.result
2.01
KB
-rw-r--r--
lowercase_table_qcache.result
847
B
-rw-r--r--
lowercase_utf8.result
173
B
-rw-r--r--
lowercase_view.result
10.21
KB
-rw-r--r--
m_i_db.result
15.5
KB
-rw-r--r--
max_statement_time.result
12.81
KB
-rw-r--r--
mdl_sync.result
113.92
KB
-rw-r--r--
mdl_tablespace.result
34.72
KB
-rw-r--r--
merge-big.result
728
B
-rw-r--r--
merge.result
100.14
KB
-rw-r--r--
merge_innodb.result
1.31
KB
-rw-r--r--
merge_mmap.result
3.33
KB
-rw-r--r--
metadata.result
17.03
KB
-rw-r--r--
mix2_myisam.result
66.36
KB
-rw-r--r--
mix2_myisam_ucs2.result
15.35
KB
-rw-r--r--
multi_plugin_load.result
347
B
-rw-r--r--
multi_plugin_load_add.result
455
B
-rw-r--r--
multi_plugin_load_add2.result
455
B
-rw-r--r--
multi_statement.result
563
B
-rw-r--r--
multi_update.result
26.47
KB
-rw-r--r--
multi_update2.result
1016
B
-rw-r--r--
multi_update_innodb.result
4.52
KB
-rw-r--r--
multi_update_tiny_hash.result
1.5
KB
-rw-r--r--
myisam-blob.result
1.41
KB
-rw-r--r--
myisam-system.result
394
B
-rw-r--r--
myisam.result
96.84
KB
-rw-r--r--
myisam_crash_before_flush_keys...
1.15
KB
-rw-r--r--
myisam_debug.result
1.21
KB
-rw-r--r--
myisam_explain_json_non_select...
287.97
KB
-rw-r--r--
myisam_explain_json_non_select...
294.08
KB
-rw-r--r--
myisam_explain_non_select_all....
133.64
KB
-rw-r--r--
myisam_explain_non_select_none...
133.36
KB
-rw-r--r--
myisam_icp.result
31.96
KB
-rw-r--r--
myisam_icp_all.result
32.02
KB
-rw-r--r--
myisam_icp_none.result
31.84
KB
-rw-r--r--
myisam_mrr.result
24.26
KB
-rw-r--r--
myisam_mrr_all.result
24.43
KB
-rw-r--r--
myisam_mrr_cost.result
24.21
KB
-rw-r--r--
myisam_mrr_cost_all.result
24.38
KB
-rw-r--r--
myisam_mrr_cost_icp.result
24.35
KB
-rw-r--r--
myisam_mrr_icp.result
24.4
KB
-rw-r--r--
myisam_mrr_none.result
24.16
KB
-rw-r--r--
myisam_recover.result
4.57
KB
-rw-r--r--
myisam_row_rpl.result
2.04
KB
-rw-r--r--
myisampack.result
7.56
KB
-rw-r--r--
mysql-bug41486.result
465
B
-rw-r--r--
mysql-bug45236.result
329
B
-rw-r--r--
mysql.result
9.77
KB
-rw-r--r--
mysql_batch_mode.result
84
B
-rw-r--r--
mysql_binary_mode.result
1.52
KB
-rw-r--r--
mysql_client_test.result
8.92
KB
-rw-r--r--
mysql_client_test_embedded.res...
111
B
-rw-r--r--
mysql_client_test_qcache.resul...
500
B
-rw-r--r--
mysql_comments.result
6.68
KB
-rw-r--r--
mysql_config_editor.result
8.01
KB
-rw-r--r--
mysql_cp932.result
37
B
-rw-r--r--
mysql_embedded.result
181
B
-rw-r--r--
mysql_embedded_client_test.res...
153
B
-rw-r--r--
mysql_locale_posix.result
973
B
-rw-r--r--
mysql_not_windows.result
477
B
-rw-r--r--
mysql_plugin.result
4.92
KB
-rw-r--r--
mysql_protocols.result
208
B
-rw-r--r--
mysql_ssl.result
152
B
-rw-r--r--
mysql_ssl_default.result
889
B
-rw-r--r--
mysql_tzinfo_to_sql.result
22.11
KB
-rw-r--r--
mysql_tzinfo_to_sql_sys.result
1.28
KB
-rw-r--r--
mysql_upgrade.result
136.32
KB
-rw-r--r--
mysql_upgrade_slave_master_inf...
5
KB
-rw-r--r--
mysql_upgrade_ssl.result
5.65
KB
-rw-r--r--
mysql_upgrade_with_session_use...
2.77
KB
-rw-r--r--
mysqladmin.result
1.22
KB
-rw-r--r--
mysqladmin_shutdown.result
170
B
-rw-r--r--
mysqlbinlog.result
31.28
KB
-rw-r--r--
mysqlbinlog_base64_flag.result
3.89
KB
-rw-r--r--
mysqlbinlog_debug.result
235
B
-rw-r--r--
mysqlbinlog_hexdump.result
6.5
KB
-rw-r--r--
mysqlbinlog_mixed_or_statment....
855
B
-rw-r--r--
mysqlbinlog_raw_mode.result
8.32
KB
-rw-r--r--
mysqlbinlog_raw_mode_win.resul...
8.08
KB
-rw-r--r--
mysqlbinlog_row_big.result
2.42
KB
-rw-r--r--
mysqlcheck.result
19.17
KB
-rw-r--r--
mysqld--defaults-file.result
908
B
-rw-r--r--
mysqld--help-notwin.result
67.99
KB
-rw-r--r--
mysqld--help-win.result
68.06
KB
-rw-r--r--
mysqld_daemon.result
66
B
-rw-r--r--
mysqld_safe.result
142
B
-rw-r--r--
mysqldump-binary.result
3.51
KB
-rw-r--r--
mysqldump-compat.result
111
B
-rw-r--r--
mysqldump-max.result
11.33
KB
-rw-r--r--
mysqldump-no-binlog.result
50
B
-rw-r--r--
mysqldump.result
295.21
KB
-rw-r--r--
mysqldump_bug29998457.result
3.47
KB
-rw-r--r--
mysqldump_bug30042589.result
3.05
KB
-rw-r--r--
mysqldump_bugs.result
5.04
KB
-rw-r--r--
mysqldump_gtid_state.result
2.69
KB
-rw-r--r--
mysqldump_restore.result
4.01
KB
-rw-r--r--
mysqldumpslow.result
1.13
KB
-rw-r--r--
mysqlimport.result
833
B
-rw-r--r--
mysqlpump.result
16.38
KB
-rw-r--r--
mysqlpump_basic.result
23.91
KB
-rw-r--r--
mysqlpump_bugs.result
850
B
-rw-r--r--
mysqlpump_charset.result
15.54
KB
-rw-r--r--
mysqlpump_concurrency.result
11.41
KB
-rw-r--r--
mysqlpump_extended.result
13.01
KB
-rw-r--r--
mysqlpump_filters.result
11.34
KB
-rw-r--r--
mysqlpump_multi_thread.result
11.53
KB
-rw-r--r--
mysqlpump_partial_bkp.result
797
B
-rw-r--r--
mysqlshow.result
9.96
KB
-rw-r--r--
mysqlslap.result
7.53
KB
-rw-r--r--
mysqltest.result
33.29
KB
-rw-r--r--
named_pipe.result
65.98
KB
-rw-r--r--
negation_elimination.result
13
KB
-rw-r--r--
no-threads.result
329
B
-rw-r--r--
no_binlog.result
64
B
-rw-r--r--
no_binlog_gtid_empty_statement...
675
B
-rw-r--r--
no_binlog_gtid_empty_transacti...
683
B
-rw-r--r--
no_binlog_gtid_mode_on.result
4.75
KB
-rw-r--r--
no_binlog_gtid_mode_on_explici...
3.84
KB
-rw-r--r--
no_binlog_gtid_next_begin_caus...
1.4
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
11.91
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
1.13
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
2.3
KB
-rw-r--r--
no_binlog_gtid_next_single_stm...
9.6
KB
-rw-r--r--
no_binlog_gtid_next_temporary_...
1.1
KB
-rw-r--r--
no_engine_substitution.result
6.01
KB
-rw-r--r--
not_asan.require
7
B
-rw-r--r--
not_embedded.require
16
B
-rw-r--r--
not_embedded_server.result
5.86
KB
-rw-r--r--
not_ndb.require
39
B
-rw-r--r--
not_openssl.require
36
B
-rw-r--r--
not_partition.result
5.75
KB
-rw-r--r--
not_ssl.require
32
B
-rw-r--r--
not_true.require
10
B
-rw-r--r--
not_valgrind.require
17
B
-rw-r--r--
not_windows.require
7
B
-rw-r--r--
null.result
16.17
KB
-rw-r--r--
null_key_all.result
27.81
KB
-rw-r--r--
null_key_icp.result
27.74
KB
-rw-r--r--
null_key_none.result
27.68
KB
-rw-r--r--
odbc.result
1.41
KB
-rw-r--r--
olap.result
20.44
KB
-rw-r--r--
one_thread_per_connection.requ...
44
B
-rw-r--r--
openssl.require
37
B
-rw-r--r--
openssl_1.result
9.65
KB
-rw-r--r--
opt_costmodel.result
11.47
KB
-rw-r--r--
opt_costmodel_downgrade.result
2.55
KB
-rw-r--r--
opt_costmodel_flush.result
27.03
KB
-rw-r--r--
opt_costmodel_pfs.result
296
B
-rw-r--r--
opt_costmodel_restart.result
7.52
KB
-rw-r--r--
opt_costmodel_tables.result
5.59
KB
-rw-r--r--
opt_costmodel_warnings.result
2.52
KB
-rw-r--r--
opt_hint_timeout.result
3.21
KB
-rw-r--r--
opt_hints.result
110.61
KB
-rw-r--r--
opt_hints_lowercase.result
1.95
KB
-rw-r--r--
opt_hints_pfs.result
1.93
KB
-rw-r--r--
opt_hints_subquery.result
135.37
KB
-rw-r--r--
optimizer_bug12837084.result
13.97
KB
-rw-r--r--
optimizer_debug_sync.result
1.32
KB
-rw-r--r--
optimizer_switch.result
30.14
KB
-rw-r--r--
order_by_all.result
78.98
KB
-rw-r--r--
order_by_icp_mrr.result
78.93
KB
-rw-r--r--
order_by_limit.result
18.46
KB
-rw-r--r--
order_by_none.result
78.59
KB
-rw-r--r--
order_by_sortkey.result
3.19
KB
-rw-r--r--
order_fill_sortbuf.result
262
B
-rw-r--r--
outfile.result
2.2
KB
-rw-r--r--
outfile_loaddata.result
11.02
KB
-rw-r--r--
overflow.result
235
B
-rw-r--r--
packet.result
9.48
KB
-rw-r--r--
parser-big-32bit.result
1.35
KB
-rw-r--r--
parser-big-64bit.result
1.35
KB
-rw-r--r--
parser.result
60.1
KB
-rw-r--r--
parser_bug21114_innodb.result
25.39
KB
-rw-r--r--
parser_not_embedded.result
4.42
KB
-rw-r--r--
parser_precedence.result
23.96
KB
-rw-r--r--
parser_stack.result
9.54
KB
-rw-r--r--
partition.result
124.74
KB
-rw-r--r--
partition_archive.result
7.74
KB
-rw-r--r--
partition_binlog.result
2.41
KB
-rw-r--r--
partition_binlog_stmt.result
955
B
-rw-r--r--
partition_blackhole.result
531
B
-rw-r--r--
partition_bug18198.result
8.07
KB
-rw-r--r--
partition_cache.result
7.16
KB
-rw-r--r--
partition_charset.result
434
B
-rw-r--r--
partition_column.result
25.2
KB
-rw-r--r--
partition_column_prune.result
4.39
KB
-rw-r--r--
partition_csv.result
2.69
KB
-rw-r--r--
partition_datatype.result
47.14
KB
-rw-r--r--
partition_debug.result
985
B
-rw-r--r--
partition_debug_sync.result
6.26
KB
-rw-r--r--
partition_debug_sync_stmt.resu...
3.65
KB
-rw-r--r--
partition_deprecation.result
4.88
KB
-rw-r--r--
partition_error.result
84.03
KB
-rw-r--r--
partition_exchange.result
65.43
KB
-rw-r--r--
partition_explicit_prune.resul...
57.97
KB
-rw-r--r--
partition_federated.result
271
B
-rw-r--r--
partition_grant.result
1.67
KB
-rw-r--r--
partition_hash.result
11.15
KB
-rw-r--r--
partition_index_innodb.result
6.16
KB
-rw-r--r--
partition_index_myisam.result
5.35
KB
-rw-r--r--
partition_innodb.result
50.73
KB
-rw-r--r--
partition_innodb_plugin.result
3.11
KB
-rw-r--r--
partition_innodb_semi_consiste...
2.92
KB
-rw-r--r--
partition_innodb_stmt.result
1.12
KB
-rw-r--r--
partition_innodb_tablespace.re...
35.12
KB
-rw-r--r--
partition_key_cache.result
22.78
KB
-rw-r--r--
partition_list.result
13.93
KB
-rw-r--r--
partition_locking.result
246.59
KB
-rw-r--r--
partition_locking_4.result
1.7
KB
-rw-r--r--
partition_mgm.result
9.83
KB
-rw-r--r--
partition_mgm_err.result
7.48
KB
-rw-r--r--
partition_mgm_err2.result
373
B
-rw-r--r--
partition_myisam.result
10.25
KB
-rw-r--r--
partition_not_blackhole.result
456
B
-rw-r--r--
partition_not_windows.result
4.27
KB
-rw-r--r--
partition_order.result
16.29
KB
-rw-r--r--
partition_plugin.result
4.48
KB
-rw-r--r--
partition_pruning.result
290.58
KB
-rw-r--r--
partition_range.result
46.69
KB
-rw-r--r--
partition_rename_longfilename....
1.91
KB
-rw-r--r--
partition_symlink.result
6.25
KB
-rw-r--r--
partition_sync.result
1.35
KB
-rw-r--r--
partition_truncate.result
675
B
-rw-r--r--
partition_utf8.result
2.01
KB
-rw-r--r--
partition_windows.result
3.3
KB
-rw-r--r--
per_thread_connection_handler....
1.45
KB
-rw-r--r--
perror-win.result
453
B
-rw-r--r--
perror.result
471
B
-rw-r--r--
plugin.result
8.52
KB
-rw-r--r--
plugin_auth.result
33.72
KB
-rw-r--r--
plugin_auth_expire.result
644
B
-rw-r--r--
plugin_auth_qa.result
24.47
KB
-rw-r--r--
plugin_auth_qa_1.result
16.11
KB
-rw-r--r--
plugin_auth_qa_2.result
11.17
KB
-rw-r--r--
plugin_auth_qa_3.result
1.29
KB
-rw-r--r--
plugin_auth_sha256.result
5.52
KB
-rw-r--r--
plugin_auth_sha256_2.result
1.96
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
3.7
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
4.02
KB
-rw-r--r--
plugin_auth_sha256_tls.result
2.53
KB
-rw-r--r--
plugin_auth_user_lock.result
1
KB
-rw-r--r--
plugin_load.result
76
B
-rw-r--r--
plugin_load_option.result
321
B
-rw-r--r--
plugin_not_embedded.result
995
B
-rw-r--r--
preload.result
3.84
KB
-rw-r--r--
profiling.result
16.4
KB
-rw-r--r--
ps.result
125.1
KB
-rw-r--r--
ps_10nestset.result
2.08
KB
-rw-r--r--
ps_11bugs.result
6.01
KB
-rw-r--r--
ps_1general.result
35.8
KB
-rw-r--r--
ps_2myisam.result
103.52
KB
-rw-r--r--
ps_3innodb.result
103.06
KB
-rw-r--r--
ps_4heap.result
102.98
KB
-rw-r--r--
ps_5merge.result
201.74
KB
-rw-r--r--
ps_ddl.result
53.74
KB
-rw-r--r--
ps_ddl1.result
11.06
KB
-rw-r--r--
ps_grant.result
3.99
KB
-rw-r--r--
ps_not_windows.result
516
B
-rw-r--r--
ps_w_max_indexes_64.result
189.58
KB
-rw-r--r--
python_with_json.require
27
B
-rw-r--r--
query_cache.result
89.5
KB
-rw-r--r--
query_cache_28249.result
3.58
KB
-rw-r--r--
query_cache_debug.result
11.1
KB
-rw-r--r--
query_cache_disabled.result
1.96
KB
-rw-r--r--
query_cache_merge.result
32.8
KB
-rw-r--r--
query_cache_notembedded.result
11.37
KB
-rw-r--r--
query_cache_ps_no_prot.result
12.26
KB
-rw-r--r--
query_cache_ps_ps_prot.result
11.09
KB
-rw-r--r--
query_cache_size_functionality...
7.69
KB
-rw-r--r--
query_cache_type_functionality...
9.19
KB
-rw-r--r--
query_cache_with_views.result
6.02
KB
-rw-r--r--
range_all.result
145.86
KB
-rw-r--r--
range_icp.result
145.41
KB
-rw-r--r--
range_icp_mrr.result
145.8
KB
-rw-r--r--
range_mrr.result
145.32
KB
-rw-r--r--
range_mrr_cost.result
144.95
KB
-rw-r--r--
range_none.result
144.9
KB
-rw-r--r--
range_with_memory_limit.result
190.38
KB
-rw-r--r--
read_many_rows_innodb.result
2.83
KB
-rw-r--r--
read_only.result
23.09
KB
-rw-r--r--
read_only_innodb.result
5.42
KB
-rw-r--r--
relay_log_index_variables.resu...
469
B
-rw-r--r--
relay_log_variables.result
475
B
-rw-r--r--
rename.result
1.58
KB
-rw-r--r--
renamedb.result
880
B
-rw-r--r--
repair.result
6.43
KB
-rw-r--r--
replace.result
1.27
KB
-rw-r--r--
reset_connection.result
6.46
KB
-rw-r--r--
rewrite_general_log.result
6.48
KB
-rw-r--r--
rewrite_slow_log.result
3.75
KB
-rw-r--r--
rollback.result
574
B
-rw-r--r--
round.result
6.92
KB
-rw-r--r--
row.result
23.11
KB
-rw-r--r--
rowid_order_innodb.result
3.6
KB
-rw-r--r--
rpl_colSize.result
4.39
KB
-rw-r--r--
rpl_connect_attr.result
1.21
KB
-rw-r--r--
rpl_extraColmaster_innodb.resu...
23.85
KB
-rw-r--r--
rpl_extraColmaster_myisam.resu...
23.85
KB
-rw-r--r--
rpl_multi_source_mysqldump_sla...
1.5
KB
-rw-r--r--
rpl_mysqldump_slave.result
867
B
-rw-r--r--
schema.result
2.34
KB
-rw-r--r--
secure_file_priv_win.result
1.43
KB
-rw-r--r--
select_all.result
180.1
KB
-rw-r--r--
select_all_bka.result
180.83
KB
-rw-r--r--
select_all_bka_nixbnl.result
180.1
KB
-rw-r--r--
select_for_update.result
755
B
-rw-r--r--
select_found.result
6.96
KB
-rw-r--r--
select_icp_mrr.result
180.04
KB
-rw-r--r--
select_icp_mrr_bka.result
180.77
KB
-rw-r--r--
select_icp_mrr_bka_nixbnl.resu...
180.04
KB
-rw-r--r--
select_none.result
179.38
KB
-rw-r--r--
select_none_bka.result
179.47
KB
-rw-r--r--
select_none_bka_nixbnl.result
178.64
KB
-rw-r--r--
select_safe.result
9.97
KB
-rw-r--r--
server_id.require
32
B
-rw-r--r--
server_id1.require
34
B
-rw-r--r--
server_offline_1.result
2.03
KB
-rw-r--r--
server_offline_2.result
1.28
KB
-rw-r--r--
server_offline_3.result
1.31
KB
-rw-r--r--
server_offline_4.result
958
B
-rw-r--r--
server_offline_5.result
7.23
KB
-rw-r--r--
server_offline_6.result
1.2
KB
-rw-r--r--
server_uuid.result
785
B
-rw-r--r--
server_uuid_embedded.result
325
B
-rw-r--r--
session_tracker.result
23.61
KB
-rw-r--r--
session_tracker_trx_state.resu...
38.38
KB
-rw-r--r--
shm.result
66.48
KB
-rw-r--r--
shm_server_restart.result
20
B
-rw-r--r--
show_check.result
78.63
KB
-rw-r--r--
show_processlist_state.result
150
B
-rw-r--r--
show_profile.result
491
B
-rw-r--r--
show_variables.result
372
B
-rw-r--r--
shutdown.result
325
B
-rw-r--r--
signal.result
71.01
KB
-rw-r--r--
signal_code.result
1020
B
-rw-r--r--
signal_demo1.result
6.25
KB
-rw-r--r--
signal_demo2.result
3.86
KB
-rw-r--r--
signal_demo3.result
3.33
KB
-rw-r--r--
signal_sqlmode.result
2.63
KB
-rw-r--r--
single_delete_update.result
24.5
KB
-rw-r--r--
skip_grants.result
2.7
KB
-rw-r--r--
skip_grants_flush.result
352
B
-rw-r--r--
skip_log_bin.result
167
B
-rw-r--r--
skip_name_resolve.result
2.51
KB
-rw-r--r--
slave-running.result
71
B
-rw-r--r--
slave-stopped.result
72
B
-rw-r--r--
slow_log.result
2.57
KB
-rw-r--r--
sort_buffer_size_functionality...
6.61
KB
-rw-r--r--
sp-big.result
1.47
KB
-rw-r--r--
sp-bugs.result
11.46
KB
-rw-r--r--
sp-code.result
29.86
KB
-rw-r--r--
sp-destruct.result
7.02
KB
-rw-r--r--
sp-dynamic.result
9.73
KB
-rw-r--r--
sp-error.result
84.05
KB
-rw-r--r--
sp-fib.result
656
B
-rw-r--r--
sp-lock.result
21.56
KB
-rw-r--r--
sp-no-code.result
307
B
-rw-r--r--
sp-prelocking.result
7
KB
-rw-r--r--
sp-security.result
26.42
KB
-rw-r--r--
sp-threads.result
2.01
KB
-rw-r--r--
sp-ucs2.result
5.45
KB
-rw-r--r--
sp-vars.result
30.01
KB
-rw-r--r--
sp.result
192.98
KB
-rw-r--r--
sp_debug.result
735
B
-rw-r--r--
sp_gis.result
853
B
-rw-r--r--
sp_notembedded.result
14.61
KB
-rw-r--r--
sp_stress_case.result
2.53
KB
-rw-r--r--
sp_sync.result
3.17
KB
-rw-r--r--
sp_trans.result
14.83
KB
-rw-r--r--
sp_trans_log.result
891
B
-rw-r--r--
sp_validation.result
34.85
KB
-rw-r--r--
sql_mode.result
23.42
KB
-rw-r--r--
sql_mode_default.result
3.39
KB
-rw-r--r--
ssl-big.result
69
B
-rw-r--r--
ssl-crl-revoked-crl.result
76
B
-rw-r--r--
ssl-sha512.result
636
B
-rw-r--r--
ssl.result
66.63
KB
-rw-r--r--
ssl_8k_key.result
42
B
-rw-r--r--
ssl_and_innodb.result
306
B
-rw-r--r--
ssl_auto_detect_openssl.result
361
B
-rw-r--r--
ssl_ca.result
857
B
-rw-r--r--
ssl_cipher.result
295
B
-rw-r--r--
ssl_compress.result
66.25
KB
-rw-r--r--
ssl_connect.result
10
B
-rw-r--r--
ssl_crl.result
1.21
KB
-rw-r--r--
ssl_crl_clients-valid.result
1.01
KB
-rw-r--r--
ssl_crl_clients.result
427
B
-rw-r--r--
ssl_crl_clients_valid.result
673
B
-rw-r--r--
ssl_crl_crlpath.result
808
B
-rw-r--r--
ssl_deprecated_tls_versions.re...
334
B
-rw-r--r--
ssl_verify_identity.result
1.35
KB
-rw-r--r--
status.result
11.15
KB
-rw-r--r--
status2.result
1.35
KB
-rw-r--r--
status_bug17954.result
582
B
-rw-r--r--
status_debug.result
3.48
KB
-rw-r--r--
strict.result
78.07
KB
-rw-r--r--
strict_autoinc_1myisam.result
1.05
KB
-rw-r--r--
strict_autoinc_2innodb.result
1.05
KB
-rw-r--r--
strict_autoinc_3heap.result
1.05
KB
-rw-r--r--
subquery_all.result
298.58
KB
-rw-r--r--
subquery_all_bka.result
298.82
KB
-rw-r--r--
subquery_all_bka_nixbnl.result
298.37
KB
-rw-r--r--
subquery_bugs.result
4.36
KB
-rw-r--r--
subquery_mat.result
133.51
KB
-rw-r--r--
subquery_mat_all.result
123.66
KB
-rw-r--r--
subquery_mat_none.result
122.3
KB
-rw-r--r--
subquery_nomat_nosj.result
297.96
KB
-rw-r--r--
subquery_nomat_nosj_bka.result
298.16
KB
-rw-r--r--
subquery_nomat_nosj_bka_nixbnl...
297.81
KB
-rw-r--r--
subquery_none.result
297.84
KB
-rw-r--r--
subquery_none_bka.result
297.94
KB
-rw-r--r--
subquery_none_bka_nixbnl.resul...
297.58
KB
-rw-r--r--
subquery_sj_all.result
500.49
KB
-rw-r--r--
subquery_sj_all_bka.result
502.11
KB
-rw-r--r--
subquery_sj_all_bka_nixbnl.res...
490.45
KB
-rw-r--r--
subquery_sj_all_bkaunique.resu...
498.68
KB
-rw-r--r--
subquery_sj_dupsweed.result
502.87
KB
-rw-r--r--
subquery_sj_dupsweed_bka.resul...
502.97
KB
-rw-r--r--
subquery_sj_dupsweed_bka_nixbn...
484.75
KB
-rw-r--r--
subquery_sj_dupsweed_bkaunique...
503
KB
-rw-r--r--
subquery_sj_firstmatch.result
487.96
KB
-rw-r--r--
subquery_sj_firstmatch_bka.res...
488.05
KB
-rw-r--r--
subquery_sj_firstmatch_bka_nix...
480.97
KB
-rw-r--r--
subquery_sj_firstmatch_bkauniq...
488.09
KB
-rw-r--r--
subquery_sj_innodb_all.result
6.38
KB
-rw-r--r--
subquery_sj_innodb_all_bka.res...
6.57
KB
-rw-r--r--
subquery_sj_innodb_all_bka_nix...
6.6
KB
-rw-r--r--
subquery_sj_innodb_all_bkauniq...
6.63
KB
-rw-r--r--
subquery_sj_innodb_none.result
6.66
KB
-rw-r--r--
subquery_sj_innodb_none_bka.re...
6.75
KB
-rw-r--r--
subquery_sj_innodb_none_bka_ni...
6.74
KB
-rw-r--r--
subquery_sj_innodb_none_bkauni...
6.79
KB
-rw-r--r--
subquery_sj_loosescan.result
502.69
KB
-rw-r--r--
subquery_sj_loosescan_bka.resu...
502.79
KB
-rw-r--r--
subquery_sj_loosescan_bka_nixb...
484.38
KB
-rw-r--r--
subquery_sj_loosescan_bkauniqu...
502.82
KB
-rw-r--r--
subquery_sj_mat.result
522.25
KB
-rw-r--r--
subquery_sj_mat_bka.result
522.34
KB
-rw-r--r--
subquery_sj_mat_bka_nixbnl.res...
505.5
KB
-rw-r--r--
subquery_sj_mat_bkaunique.resu...
522.38
KB
-rw-r--r--
subquery_sj_mat_nosj.result
549.88
KB
-rw-r--r--
subquery_sj_none.result
516.26
KB
-rw-r--r--
subquery_sj_none_bka.result
516.35
KB
-rw-r--r--
subquery_sj_none_bka_nixbnl.re...
509.41
KB
-rw-r--r--
subquery_sj_none_bkaunique.res...
516.38
KB
-rw-r--r--
subselect_debug.result
662
B
-rw-r--r--
subselect_gis.result
320
B
-rw-r--r--
subselect_innodb.result
28.76
KB
-rw-r--r--
subselect_notembedded.result
752
B
-rw-r--r--
sum_distinct-big.result
2
KB
-rw-r--r--
sum_distinct.result
3.14
KB
-rw-r--r--
symlink.result
8.12
KB
-rw-r--r--
synchronization.result
4.05
KB
-rw-r--r--
sysdate_is_now.result
76
B
-rw-r--r--
system_mysql_db.result
13.71
KB
-rw-r--r--
system_mysql_db_refs.result
3.14
KB
-rw-r--r--
table_definition_cache_functio...
6.9
KB
-rw-r--r--
table_open_cache_functionality...
12.92
KB
-rw-r--r--
tablelock.result
1.5
KB
-rw-r--r--
tablespace.result
10.57
KB
-rw-r--r--
temp_pool.result
646
B
-rw-r--r--
temp_table.result
8.18
KB
-rw-r--r--
temporal_literal.result
13.62
KB
-rw-r--r--
test_security_context.result
1.06
KB
-rw-r--r--
testdb_only.require
45
B
-rw-r--r--
timezone.result
2.58
KB
-rw-r--r--
timezone2.result
13.21
KB
-rw-r--r--
timezone3.result
2.21
KB
-rw-r--r--
timezone4.result
148
B
-rw-r--r--
timezone_debug.result
926
B
-rw-r--r--
timezone_grant.result
4.42
KB
-rw-r--r--
trans_read_only.result
1.38
KB
-rw-r--r--
transaction_isolation.result
4.3
KB
-rw-r--r--
transaction_read_only.result
5.39
KB
-rw-r--r--
trigger-compat.result
7.98
KB
-rw-r--r--
trigger-trans.result
6.45
KB
-rw-r--r--
trigger.result
87.73
KB
-rw-r--r--
trigger_debug.result
627
B
-rw-r--r--
trigger_notembedded.result
19.95
KB
-rw-r--r--
trigger_wl3253.result
26.27
KB
-rw-r--r--
trigger_wl6030.result
53.61
KB
-rw-r--r--
true.require
7
B
-rw-r--r--
truncate.result
3.7
KB
-rw-r--r--
truncate_coverage.result
2.4
KB
-rw-r--r--
type_binary.result
9.62
KB
-rw-r--r--
type_bit.result
18.23
KB
-rw-r--r--
type_bit_innodb.result
8.2
KB
-rw-r--r--
type_blob.result
40.47
KB
-rw-r--r--
type_date.result
21.96
KB
-rw-r--r--
type_datetime.result
34.39
KB
-rw-r--r--
type_decimal.result
36.16
KB
-rw-r--r--
type_enum.result
101.64
KB
-rw-r--r--
type_float.result
12.43
KB
-rw-r--r--
type_nchar.result
1.44
KB
-rw-r--r--
type_newdecimal-big.result
678
B
-rw-r--r--
type_newdecimal.result
68.9
KB
-rw-r--r--
type_ranges.result
17.61
KB
-rw-r--r--
type_set.result
4.58
KB
-rw-r--r--
type_string.result
139
B
-rw-r--r--
type_temporal_fractional.resul...
645.37
KB
-rw-r--r--
type_temporal_upgrade.result
13.45
KB
-rw-r--r--
type_time.result
120.35
KB
-rw-r--r--
type_timestamp.result
25.71
KB
-rw-r--r--
type_timestamp_explicit.result
31.6
KB
-rw-r--r--
type_uint.result
380
B
-rw-r--r--
type_varchar.result
22.85
KB
-rw-r--r--
type_year.result
7.16
KB
-rw-r--r--
udf.result
17.31
KB
-rw-r--r--
udf_services.result
499
B
-rw-r--r--
udf_skip_grants.result
223
B
-rw-r--r--
union.result
87.33
KB
-rw-r--r--
unsafe_binlog_innodb.result
4.36
KB
-rw-r--r--
update.result
24.32
KB
-rw-r--r--
upgrade.result
5.28
KB
-rw-r--r--
user_if_exists.result
9.13
KB
-rw-r--r--
user_limits.result
5.82
KB
-rw-r--r--
user_lock.result
23.14
KB
-rw-r--r--
user_var-binlog.result
2.21
KB
-rw-r--r--
user_var.result
18.95
KB
-rw-r--r--
utility_warnings.result
7
KB
-rw-r--r--
validate_password_plugin.resul...
12.25
KB
-rw-r--r--
validate_password_plugin_check...
3.69
KB
-rw-r--r--
varbinary.result
58
KB
-rw-r--r--
variables-big.result
972
B
-rw-r--r--
variables-notembedded.result
5.97
KB
-rw-r--r--
variables-win.result
347
B
-rw-r--r--
variables.result
63.66
KB
-rw-r--r--
variables_community.result
182
B
-rw-r--r--
variables_debug.result
2.13
KB
-rw-r--r--
version_token.result
11.29
KB
-rw-r--r--
version_token_bug21280801.resu...
2.72
KB
-rw-r--r--
version_token_errors.result
2.21
KB
-rw-r--r--
view.result
258
KB
-rw-r--r--
view_alias.result
6.19
KB
-rw-r--r--
view_grant.result
126.95
KB
-rw-r--r--
view_gtid_mode_on_debug.result
1.37
KB
-rw-r--r--
wait_timeout.result
1.07
KB
-rw-r--r--
warnings.result
11.89
KB
-rw-r--r--
warnings_engine_disabled.resul...
475
B
-rw-r--r--
windows.require
7
B
-rw-r--r--
windows.result
1.98
KB
-rw-r--r--
wl3836.result
2.71
KB
-rw-r--r--
wl5928.result
15.47
KB
-rw-r--r--
wl6219-csv.result
5.16
KB
-rw-r--r--
wl6219-innodb.result
5.18
KB
-rw-r--r--
wl6219-memory.result
5.18
KB
-rw-r--r--
wl6219-merge.result
3.87
KB
-rw-r--r--
wl6219-myisam.result
5.18
KB
-rw-r--r--
wl6219-upgrade.result
10.52
KB
-rw-r--r--
wl6301_1_not_windows.result
44
B
-rw-r--r--
wl6301_2_not_windows.result
46
B
-rw-r--r--
wl6301_3.result
89
B
-rw-r--r--
wl6443_deprecation.result
10.81
KB
-rw-r--r--
wl6661.result
6.33
KB
-rw-r--r--
wl6711_heap_to_disk.result
6.07
KB
-rw-r--r--
wl6978.result
214
B
-rw-r--r--
xa.result
13.51
KB
-rw-r--r--
xa_deadlock_binlog.result
3.08
KB
-rw-r--r--
xa_debug.result
3.18
KB
-rw-r--r--
xa_gtid.result
878
B
-rw-r--r--
xa_prepared_binlog_off.result
19.77
KB
-rw-r--r--
xml.result
41.94
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : group_min_max.result
drop table if exists t1; create table t1 ( a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(248) default ' ' ); insert into t1 (a1, a2, b, c, d) values ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'), ('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'), ('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'), ('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'), ('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'), ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'), ('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'), ('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'), ('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'), ('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'); create index idx_t1_0 on t1 (a1); create index idx_t1_1 on t1 (a1,a2,b,c); create index idx_t1_2 on t1 (a1,a2,b); analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status Table is already up to date drop table if exists t2; create table t2 ( a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(248) default ' ' ); insert into t2 select * from t1; insert into t2 (a1, a2, b, c, d) values ('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'), ('a','a','a',NULL,'xyz'), ('a','a','b',NULL,'xyz'), ('a','b','a',NULL,'xyz'), ('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'), ('d','b','b',NULL,'xyz'), ('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'), ('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'), ('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'), ('a','a','a',NULL,'xyz'), ('a','a','b',NULL,'xyz'), ('a','b','a',NULL,'xyz'), ('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'), ('d','b','b',NULL,'xyz'), ('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'), ('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'); create index idx_t2_0 on t2 (a1); create index idx_t2_1 on t2 (a1,a2,b,c); create index idx_t2_2 on t2 (a1,a2,b); analyze table t2; Table Op Msg_type Msg_text test.t2 analyze status Table is already up to date drop table if exists t3; create table t3 ( a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' ' ); insert into t3 (a1, a2, b, c, d) values ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'); insert into t3 (a1, a2, b, c, d) values ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'); insert into t3 (a1, a2, b, c, d) values ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'); insert into t3 (a1, a2, b, c, d) values ('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'), ('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'), ('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'), ('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'), ('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'), ('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'), ('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'), ('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'), ('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'), ('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'), ('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'), ('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'); create index idx_t3_0 on t3 (a1); create index idx_t3_1 on t3 (a1,a2,b,c); create index idx_t3_2 on t3 (a1,a2,b); analyze table t3; Table Op Msg_type Msg_text test.t3 analyze status Table is already up to date explain select a1, min(a2) from t1 group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,min(`test`.`t1`.`a2`) AS `min(a2)` from `test`.`t1` group by `test`.`t1`.`a1` explain select a1, max(a2) from t1 group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 65 NULL 5 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`a2`) AS `max(a2)` from `test`.`t1` group by `test`.`t1`.`a1` explain select a1, min(a2), max(a2) from t1 group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,min(`test`.`t1`.`a2`) AS `min(a2)`,max(`test`.`t1`.`a2`) AS `max(a2)` from `test`.`t1` group by `test`.`t1`.`a1` explain select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 # NULL # 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select min(`test`.`t1`.`a2`) AS `min(a2)`,`test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`a2`) AS `max(a2)`,min(`test`.`t1`.`a2`) AS `min(a2)`,`test`.`t1`.`a1` AS `a1` from `test`.`t1` group by `test`.`t1`.`a1` explain select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,`test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`c`) AS `max(c)`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`a2` AS `a2`,max(`test`.`t1`.`c`) AS `max(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select min(a2) from t1 group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select min(`test`.`t1`.`a2`) AS `min(a2)` from `test`.`t1` group by `test`.`t1`.`a1` explain select a2, min(c), max(c) from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` select a1, min(a2) from t1 group by a1; a1 min(a2) a a b a c a d a select a1, max(a2) from t1 group by a1; a1 max(a2) a b b b c b d b select a1, min(a2), max(a2) from t1 group by a1; a1 min(a2) max(a2) a a b b a b c a b d a b select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b; a1 a2 b max(c) min(c) a a a d111 a111 a a b h112 e112 a b a l121 i121 a b b p122 m122 b a a d211 a211 b a b h212 e212 b b a l221 i221 b b b p222 m222 c a a d311 a311 c a b h312 e312 c b a l321 i321 c b b p322 m322 d a a d411 a411 d a b h412 e412 d b a l421 i421 d b b p422 m422 select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b; a1 a2 b max(c) min(c) a a NULL a999 a777 a a a d111 a111 a a b h112 e112 a b a l121 i121 a b b p122 m122 b a a d211 a211 b a b h212 e212 b b a l221 i221 b b b p222 m222 c a NULL c999 c777 c a a d311 a311 c a b h312 e312 c b a l321 i321 c b b p322 m322 d a a d411 a411 d a b h412 e412 d b a l421 i421 d b b p422 m422 e a a NULL NULL e a b NULL NULL select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1; min(a2) a1 max(a2) min(a2) a1 a a b a a a b b a b a c b a c a d b a d select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b; a1 b min(c) a1 max(c) b a2 max(c) max(c) a a a111 a d111 a a d111 d111 a b e112 a h112 b a h112 h112 a a i121 a l121 a b l121 l121 a b m122 a p122 b b p122 p122 b a a211 b d211 a a d211 d211 b b e212 b h212 b a h212 h212 b a i221 b l221 a b l221 l221 b b m222 b p222 b b p222 p222 c a a311 c d311 a a d311 d311 c b e312 c h312 b a h312 h312 c a i321 c l321 a b l321 l321 c b m322 c p322 b b p322 p322 d a a411 d d411 a a d411 d411 d b e412 d h412 b a h412 h412 d a i421 d l421 a b l421 l421 d b m422 d p422 b b p422 p422 select min(a2) from t1 group by a1; min(a2) a a a a select a2, min(c), max(c) from t1 group by a1,a2,b; a2 min(c) max(c) a a111 d111 a e112 h112 b i121 l121 b m122 p122 a a211 d211 a e212 h212 b i221 l221 b m222 p222 a a311 d311 a e312 h312 b i321 l321 b m322 p322 a a411 d411 a e412 h412 b i421 l421 b m422 p422 explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` < 'd') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` >= 'b') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a1` < 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a1` < 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a2` < 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`a1` = 'z') or (`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`a1` = 'z') or (`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` >= 'b') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` in ('a','b','d')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`a1` < 'd') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`a1` < 'd') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`a1` >= 'b') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a1` < 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a1` < 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a2` < 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a1` = 'z') or (`test`.`t2`.`a1` = 'b') or (`test`.`t2`.`a1` = 'd')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a1` = 'z') or (`test`.`t2`.`a1` = 'b') or (`test`.`t2`.`a1` = 'd')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (((`test`.`t2`.`a1` = 'b') or (`test`.`t2`.`a1` = 'd') or (`test`.`t2`.`a1` = 'a') or (`test`.`t2`.`a1` = 'c')) and (`test`.`t2`.`a2` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (((`test`.`t2`.`a1` = 'b') or (`test`.`t2`.`a1` = 'd') or (`test`.`t2`.`a1` = 'a') or (`test`.`t2`.`a1` = 'c')) and (`test`.`t2`.`a2` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`a1` >= 'b') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`a1` in ('a','b','d')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; a1 a2 b min(c) max(c) b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; a1 max(c) a d111 a h112 a l121 a p122 c d311 c h312 c l321 c p322 d d411 d h412 d l421 d p422 select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 d111 a a b e112 h112 b a a a211 d211 b a b e212 h212 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; a1 a2 b max(c) b a a d211 b a b h212 b b a l221 b b b p222 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; a1 a2 b min(c) max(c) b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; a1 a2 b max(c) a b a l121 a b b p122 b b a l221 b b b p222 c b a l321 c b b p322 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; a1 a2 b min(c) max(c) a b a i121 l121 a b b m122 p122 b b a i221 l221 b b b m222 p222 c b a i321 l321 c b b m322 p322 d b a i421 l421 d b b m422 p422 select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; a1 min(c) max(c) b a211 d211 b e212 h212 b i221 l221 b m222 p222 c a311 d311 c e312 h312 c i321 l321 c m322 p322 d a411 d411 d e412 h412 d i421 l421 d m422 p422 select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b; a1 max(c) a d111 a h112 a l121 a p122 b d211 b h212 b l221 b p222 d d411 d h412 d l421 d p422 select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b; a1 a2 b max(c) a a NULL a999 a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a NULL c999 c a a d311 c a b h312 c b a l321 c b b p322 select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b; a1 a2 b min(c) max(c) a a NULL a777 a999 a a a a111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a NULL c777 c999 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b; a1 a2 b min(c) max(c) b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a NULL c777 c999 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 e a a NULL NULL e a b NULL NULL select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; a1 a2 b max(c) a a NULL a999 a a a d111 a a b h112 a b a l121 a b b p122 c a NULL c999 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 e a a NULL e a b NULL select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; a1 max(c) a a999 a d111 a h112 a l121 a p122 c c999 c d311 c h312 c l321 c p322 d d411 d h412 d l421 d p422 e NULL e NULL select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b; a1 a2 b min(c) max(c) a a NULL a777 a999 a a a a111 d111 a a b e112 h112 b a a a211 d211 b a b e212 h212 c a NULL c777 c999 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 e a a NULL NULL e a b NULL NULL select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; a1 a2 b max(c) b a a d211 b a b h212 b b a l221 b b b p222 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; a1 a2 b min(c) max(c) b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; a1 a2 b max(c) a b a l121 a b b p122 b b a l221 b b b p222 c b a l321 c b b p322 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; a1 a2 b min(c) max(c) a b a i121 l121 a b b m122 p122 b b a i221 l221 b b b m222 p222 c b a i321 l321 c b b m322 p322 d b a i421 l421 d b b m422 p422 select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b; a1 min(c) max(c) b a211 d211 b e212 h212 b i221 l221 b m222 p222 c c777 c999 c a311 d311 c e312 h312 c i321 l321 c m322 p322 d a411 d411 d e412 h412 d i421 l421 d m422 p422 e NULL NULL e NULL NULL select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b; a1 max(c) a a999 a d111 a h112 a l121 a p122 b d211 b h212 b l221 b p222 d d411 d h412 d l421 d p422 explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'b') and (`test`.`t1`.`a2` = 'a')) group by `test`.`t1`.`a1` explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,max(`test`.`t1`.`c`) AS `max(c)`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'b') and (`test`.`t1`.`a2` = 'a')) group by `test`.`t1`.`a1` explain select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`b` = 'b') group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`b` = 'b') group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`b` = 'b') group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'b') and (`test`.`t2`.`a2` = 'a')) group by `test`.`t2`.`a1` explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,max(`test`.`t2`.`c`) AS `max(c)`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'b') and (`test`.`t2`.`a2` = 'a')) group by `test`.`t2`.`a1` explain select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`b` = 'b') group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`b` = 'b') group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`b` = 'b') group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t3 NULL range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 4 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t3`.`a1` AS `a1`,`test`.`t3`.`a2` AS `a2`,`test`.`t3`.`b` AS `b`,max(`test`.`t3`.`c`) AS `max(c)`,min(`test`.`t3`.`c`) AS `min(c)` from `test`.`t3` where ((`test`.`t3`.`b` = 'b') and (`test`.`t3`.`a2` = 'a')) group by `test`.`t3`.`a1` explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t3 NULL range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 4 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t3`.`a1` AS `a1`,max(`test`.`t3`.`c`) AS `max(c)`,min(`test`.`t3`.`c`) AS `min(c)` from `test`.`t3` where ((`test`.`t3`.`b` = 'b') and (`test`.`t3`.`a2` = 'a')) group by `test`.`t3`.`a1` select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; a1 a2 b max(c) min(c) a a b h112 e112 b a b h212 e212 c a b h312 e312 d a b h412 e412 select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 b h212 e212 c h312 e312 d h412 e412 select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2; a1 a2 b max(c) a a b h112 a b b p122 b a b h212 b b b p222 c a b h312 c b b p322 d a b h412 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2; a1 a2 b min(c) max(c) a a b e112 h112 a b b m122 p122 b a b e212 h212 b b b m222 p222 c a b e312 h312 c b b m322 p322 d a b e412 h412 d b b m422 p422 select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2; a1 a2 max(c) a a h112 a b p122 b a h212 b b p222 c a h312 c b p322 d a h412 d b p422 select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; a1 a2 b max(c) min(c) a a b h112 e112 b a b h212 e212 c a b h312 e312 d a b h412 e412 e a b NULL NULL select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 b h212 e212 c h312 e312 d h412 e412 e NULL NULL select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2; a1 a2 b max(c) a a b h112 a b b p122 b a b h212 b b b p222 c a b h312 c b b p322 d a b h412 d b b p422 e a b NULL select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2; a1 a2 b min(c) max(c) a a b e112 h112 a b b m122 p122 b a b e212 h212 b b b m222 p222 c a b e312 h312 c b b m322 p322 d a b e412 h412 d b b m422 p422 e a b NULL NULL select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2; a1 a2 max(c) a a h112 a b p122 b a h212 b b p222 c a h312 c b p322 d a h412 d b p422 e a NULL select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; a1 a2 b max(c) min(c) a a b h112 e112 b a b h212 e212 c a b h312 e312 select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 b h212 e212 c h312 e312 explain select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`a2` = 'a') and isnull(`test`.`t2`.`b`)) group by `test`.`t2`.`a1` explain select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`a2` = 'a') and isnull(`test`.`t2`.`b`)) group by `test`.`t2`.`a1` explain select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where isnull(`test`.`t2`.`b`) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where isnull(`test`.`t2`.`b`) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where isnull(`test`.`t2`.`b`) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where isnull(`test`.`t2`.`b`) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1; a1 a2 b min(c) a a NULL a777 c a NULL c777 select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1; a1 a2 b max(c) a a NULL a999 c a NULL c999 select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2; a1 a2 b min(c) a a NULL a777 c a NULL c777 select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2; a1 a2 b max(c) a a NULL a999 c a NULL c999 select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2; a1 a2 b min(c) max(c) a a NULL a777 a999 c a NULL c777 c999 select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2; a1 a2 b min(c) max(c) a a NULL a777 a999 c a NULL c777 c999 explain select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL # 33.33 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` > 'b1') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` > 'b1') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 33.33 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` > 'f123') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` > 'f123') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` < 'a0') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` < 'a0') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` < 'k321') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`c` < 'k321') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` < 'a0') or (`test`.`t1`.`c` > 'b1')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` < 'a0') or (`test`.`t1`.`c` > 'b1')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 55.55 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` > 'b1') or (`test`.`t1`.`c` <= 'g1')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 55.55 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` > 'b1') or (`test`.`t1`.`c` <= 'g1')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` > 'b111') and (`test`.`t1`.`c` <= 'g112')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` < 'c5') or (`test`.`t1`.`c` = 'g412') or (`test`.`t1`.`c` = 'k421')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`c` > 'b111') and (`test`.`t1`.`c` <= 'g112')) or ((`test`.`t1`.`c` > 'd000') and (`test`.`t1`.`c` <= 'i110'))) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`c` between 'b111' and 'g112') or (`test`.`t1`.`c` between 'd000' and 'i110')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 33.33 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` > 'b1') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` > 'b1') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 33.33 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` > 'f123') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` > 'f123') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` < 'a0') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` < 'a0') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` < 'k321') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (`test`.`t2`.`c` < 'k321') group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` < 'a0') or (`test`.`t2`.`c` > 'b1')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` < 'a0') or (`test`.`t2`.`c` > 'b1')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 55.55 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` > 'b1') or (`test`.`t2`.`c` <= 'g1')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` > 'b1') or (`test`.`t2`.`c` <= 'g1')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` > 'b111') and (`test`.`t2`.`c` <= 'g112')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` < 'c5') or (`test`.`t2`.`c` = 'g412') or (`test`.`t2`.`c` = 'k421')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (((`test`.`t2`.`c` > 'b111') and (`test`.`t2`.`c` <= 'g112')) or ((`test`.`t2`.`c` > 'd000') and (`test`.`t2`.`c` <= 'i110'))) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b; a1 a2 b min(c) max(c) a a a b111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a b211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b; a1 a2 b max(c) a a b h112 a b a l121 a b b p122 b a b h212 b b a l221 b b b p222 c a b h312 c b a l321 c b b p322 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b; a1 a2 b min(c) max(c) a a b g112 h112 a b a i121 l121 a b b m122 p122 b a b f212 h212 b b a i221 l221 b b b m222 p222 c a b f312 h312 c b a i321 l321 c b b m322 p322 d a b f412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b; a1 a2 b max(c) select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b; a1 a2 b min(c) max(c) select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a k121 b a a d211 b a b h212 b b a k221 c a a d311 c a b h312 c b a j321 d a a d411 d a b h412 d b a j421 select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 d111 a a b e112 h112 a b a i121 k121 b a a a211 d211 b a b e212 h212 b b a i221 k221 c a a a311 d311 c a b e312 h312 c b a i321 j321 d a a a411 d411 d a b e412 h412 d b a i421 j421 select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; a1 a2 b min(c) max(c) a a a b111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a b211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 g112 b a a b211 d211 b a b e212 f212 c a a b311 d311 c a b e312 f312 d a a b411 d411 d a b e412 f412 select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; a1 a2 b min(c) max(c) a a a a111 c111 b a a a211 c211 c a a a311 c311 d a a a411 c411 d a b g412 g412 d b a k421 k421 select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 h112 b a a b211 d211 b a b e212 h212 c a a b311 d311 c a b e312 h312 d a a b411 d411 d a b e412 h412 select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b; a1 a2 b min(c) max(c) a a a b111 d111 a a b e112 h112 b a a b211 d211 b a b e212 h212 c a a b311 d311 c a b e312 h312 d a a b411 d411 d a b e412 h412 select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a NULL c999 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b; a1 a2 b min(c) max(c) a a a b111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a b211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a NULL c777 c999 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b; a1 a2 b max(c) a a b h112 a b a l121 a b b p122 b a b h212 b b a l221 b b b p222 c a b h312 c b a l321 c b b p322 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b; a1 a2 b min(c) max(c) a a b g112 h112 a b a i121 l121 a b b m122 p122 b a b f212 h212 b b a i221 l221 b b b m222 p222 c a b f312 h312 c b a i321 l321 c b b m322 p322 d a b f412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b; a1 a2 b max(c) select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b; a1 a2 b min(c) max(c) select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b; a1 a2 b max(c) a a NULL a999 a a a d111 a a b h112 a b a k121 b a a d211 b a b h212 b b a k221 c a NULL c999 c a a d311 c a b h312 c b a j321 d a a d411 d a b h412 d b a j421 select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b; a1 a2 b min(c) max(c) a a NULL a777 a999 a a a a111 d111 a a b e112 h112 a b a i121 k121 b a a a211 d211 b a b e212 h212 b b a i221 k221 c a NULL c777 c999 c a a a311 d311 c a b e312 h312 c b a i321 j321 d a a a411 d411 d a b e412 h412 d b a i421 j421 select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; a1 a2 b max(c) a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a NULL c999 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; a1 a2 b min(c) max(c) a a a b111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a b211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a NULL c777 c999 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; a1 a2 b max(c) a a NULL a999 a a a d111 a a b h112 a b a l121 a b b p122 b a a d211 b a b h212 b b a l221 b b b p222 c a NULL c999 c a a d311 c a b h312 c b a l321 c b b p322 d a a d411 d a b h412 d b a l421 d b b p422 select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; a1 a2 b min(c) max(c) a a NULL a777 a999 a a a a111 d111 a a b e112 h112 a b a i121 l121 a b b m122 p122 b a a a211 d211 b a b e212 h212 b b a i221 l221 b b b m222 p222 c a NULL c777 c999 c a a a311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a a411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 g112 b a a b211 d211 b a b e212 f212 c a NULL c777 c999 c a a b311 d311 c a b e312 f312 d a a b411 d411 d a b e412 f412 select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; a1 a2 b min(c) max(c) a a NULL a777 a999 a a a a111 c111 b a a a211 c211 c a a a311 c311 d a a a411 c411 d a b g412 g412 d b a k421 k421 select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 h112 b a a b211 d211 b a b e212 h212 c a NULL c777 c999 c a a b311 d311 c a b e312 h312 d a a b411 d411 d a b e412 h412 explain select a1,a2,b,min(c),max(c) from t1 where exists ( select * from t2 where t2.c = t1.c ) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 NULL index idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 128 100.00 Using where; Using index 2 DEPENDENT SUBQUERY t2 NULL index NULL idx_t2_1 163 NULL 164 10.00 Using where; Using index Warnings: Note 1276 Field or reference 'test.t1.c' of SELECT #2 was resolved in SELECT #1 Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where exists(/* select#2 */ select 1 from `test`.`t2` where (`test`.`t2`.`c` = `test`.`t1`.`c`)) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where exists ( select * from t2 where t2.c > 'b1' ) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by 2 SUBQUERY t2 NULL index NULL idx_t2_1 163 NULL 164 33.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where 1 group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a2` < 'b')) and (`test`.`t1`.`b` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a2` < 'b')) and (`test`.`t1`.`c` > 'b111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b') and (`test`.`t1`.`c` > 'b111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and ((`test`.`t1`.`a1` > 'a') or (`test`.`t1`.`a1` < '9')) and (`test`.`t1`.`a2` >= 'b') and (`test`.`t1`.`a2` < 'z') and ((`test`.`t1`.`c` < 'h112') or (`test`.`t1`.`c` = 'j121') or ((`test`.`t1`.`c` > 'k121') and (`test`.`t1`.`c` < 'm122')) or (`test`.`t1`.`c` > 'o122'))) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and ((`test`.`t1`.`a1` > 'a') or (`test`.`t1`.`a1` < '9')) and (`test`.`t1`.`a2` >= 'b') and (`test`.`t1`.`a2` < 'z') and ((`test`.`t1`.`c` = 'j121') or ((`test`.`t1`.`c` > 'k121') and (`test`.`t1`.`c` < 'm122')) or (`test`.`t1`.`c` > 'o122') or (`test`.`t1`.`c` < 'h112') or (`test`.`t1`.`c` = 'c111'))) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (ord(`test`.`t1`.`a1`) > 97) and ((ord(`test`.`t1`.`a2`) + ord(`test`.`t1`.`a1`)) > 194)) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a2` < 'b')) and (`test`.`t2`.`b` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where (((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a2` < 'b')) and (`test`.`t2`.`c` > 'b111')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b') and (`test`.`t2`.`c` > 'b111')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and ((`test`.`t2`.`a1` > 'a') or (`test`.`t2`.`a1` < '9')) and (`test`.`t2`.`a2` >= 'b') and (`test`.`t2`.`a2` < 'z') and ((`test`.`t2`.`c` < 'h112') or (`test`.`t2`.`c` = 'j121') or ((`test`.`t2`.`c` > 'k121') and (`test`.`t2`.`c` < 'm122')) or (`test`.`t2`.`c` > 'o122'))) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and ((`test`.`t2`.`a1` > 'a') or (`test`.`t2`.`a1` < '9')) and (`test`.`t2`.`a2` >= 'b') and (`test`.`t2`.`a2` < 'z') and ((`test`.`t2`.`c` = 'j121') or ((`test`.`t2`.`c` > 'k121') and (`test`.`t2`.`c` < 'm122')) or (`test`.`t2`.`c` > 'o122') or (`test`.`t2`.`c` < 'h112') or (`test`.`t2`.`c` = 'c111'))) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where ((`test`.`t2`.`b` = 'c') and (`test`.`t2`.`a1` > 'a') and (`test`.`t2`.`a2` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; a1 a2 b min(c) max(c) a a b e112 h112 b a b e212 h212 c a b e312 h312 c b b m322 p322 d a b e412 h412 d b b m422 p422 select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 h112 b a a b211 d211 b a b e212 h212 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; a1 a2 b min(c) max(c) a b a i121 l121 b b a i221 l221 c b a i321 l321 d b a i421 l421 select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; a1 a2 b min(c) b b a k221 c b a k321 d b a k421 select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b; a1 a2 b min(c) b b a k221 c b a k321 d b a k421 select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b min(c) select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b; a1 a2 b min(c) select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; a1 a2 b min(c) max(c) a a b e112 h112 b a b e212 h212 c a b e312 h312 c b b m322 p322 d a b e412 h412 d b b m422 p422 e a b NULL NULL select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b; a1 a2 b min(c) max(c) a a a c111 d111 a a b e112 h112 b a a b211 d211 b a b e212 h212 c a NULL c777 c999 c a a b311 d311 c a b e312 h312 c b a i321 l321 c b b m322 p322 d a a b411 d411 d a b e412 h412 d b a i421 l421 d b b m422 p422 select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; a1 a2 b min(c) max(c) a b a i121 l121 b b a i221 l221 c b a i321 l321 d b a i421 l421 select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; a1 a2 b min(c) b b a k221 c b a k321 d b a k421 select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b; a1 a2 b min(c) b b a k221 c b a k321 d b a k421 select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b min(c) explain select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (((`test`.`t1`.`a1` >= 'c') or (`test`.`t1`.`a2` < 'b')) and (`test`.`t1`.`b` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where (((`test`.`t2`.`a1` >= 'c') or (`test`.`t2`.`a2` < 'b')) and (`test`.`t2`.`b` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 0.61 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'c') and (`test`.`t2`.`a1` > 'a') and (`test`.`t2`.`a2` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; a1 a2 b a a b b a b c a b c b b d a b d b b select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; a1 a2 b a b a b b a c b a d b a select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; a1 a2 b c a b a i121 select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; a1 a2 b a a b b a b c a b c b b d a b d b b e a b select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; a1 a2 b a b a b b a c b a d b a select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; a1 a2 b c a b a i121 select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b explain select distinct a1,a2,b from t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain extended select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_1 idx_t1_1 163 NULL 128 0.78 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) explain select distinct b from t1 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 3.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain select distinct a1,a2,b from t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) explain extended select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_1 idx_t2_1 163 NULL 164 0.61 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'c') and (`test`.`t2`.`a1` > 'a') and (`test`.`t2`.`a2` > 'a')) explain select distinct b from t2 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_1,idx_t2_2 idx_t2_2 146 NULL 164 3.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) select distinct a1,a2,b from t1; a1 a2 b a a a a a b a b a a b b b a a b a b b b a b b b c a a c a b c b a c b b d a a d a b d b a d b b select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a'); a1 a2 b a b a b b a c b a d b a select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); a1 a2 b c a b a i121 select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); a1 a2 b select distinct b from t1 where (a2 >= 'b') and (b = 'a'); b a select distinct a1,a2,b from t2; a1 a2 b a a NULL a a a a a b a b a a b b b a a b a b b b a b b b c a NULL c a a c a b c b a c b b d a a d a b d b a d b b e a a e a b select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a'); a1 a2 b a b a b b a c b a d b a select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); a1 a2 b c a b a i121 select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); a1 a2 b select distinct b from t2 where (a2 >= 'b') and (b = 'a'); b a select distinct t_00.a1 from t1 t_00 where exists ( select * from t2 where a1 = t_00.a1 ); a1 a b c d select distinct a1,a1 from t1; a1 a1 a a b b c c d d select distinct a2,a1,a2,a1 from t1; a2 a1 a2 a1 a a a a b a b a a b a b b b b b a c a c b c b c a d a d b d b d select distinct t1.a1,t2.a1 from t1,t2; a1 a1 a a b a c a d a a b b b c b d b a c b c c c d c a d b d c d d d a e b e c e d e explain select distinct a1,a2,b from t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by; Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain select distinct a1,a2,b from t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # 0.61 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'c') and (`test`.`t2`.`a1` > 'a') and (`test`.`t2`.`a2` > 'a')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` explain select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # 100.00 Using where; Using index for group-by; Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select distinct `test`.`t2`.`b` AS `b` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2` select distinct a1,a2,b from t1; a1 a2 b a a a a a b a b a a b b b a a b a b b b a b b b c a a c a b c b a c b b d a a d a b d b a d b b select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; a1 a2 b a b a b b a c b a d b a select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; a1 a2 b c a b a i121 select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; b a select distinct a1,a2,b from t2; a1 a2 b a a NULL a a a a a b a b a a b b b a a b a b b b a b b b c a NULL c a a c a b c b a c b b d a a d a b d b a d b b e a a e a b select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; a1 a2 b a b a b b a c b a d b a select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; a1 a2 b c a b a i121 select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; a1 a2 b select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; b a explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`) AS `count(distinct a1,a2,b)` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1 idx_t1_1 163 NULL 65 100.00 Using where; Using index for group-by (scanning) Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c`) AS `count(distinct a1,a2,b,c)` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain extended select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`) AS `count(distinct a1,a2,b)` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 3.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`b`) AS `count(distinct b)` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) explain extended select 98 + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a'); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 100.00 Using where; Using index for group-by Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select (98 + count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`)) AS `98 + count(distinct a1,a2,b)` from `test`.`t1` where ((`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a'); count(distinct a1,a2,b) 4 select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); count(distinct a1,a2,b,c) 1 select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); count(distinct a1,a2,b) 0 select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a'); count(distinct b) 1 select 98 + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a'); 98 + count(distinct a1,a2,b) 104 explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,concat(min(`test`.`t1`.`c`),max(`test`.`t1`.`c`)) AS `concat(min(c), max(c))` from `test`.`t1` where (`test`.`t1`.`a1` < 'd') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select concat(`test`.`t1`.`a1`,min(`test`.`t1`.`c`)) AS `concat(a1,min(c))`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`a1` < 'd') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select concat(`test`.`t1`.`a1`,min(`test`.`t1`.`c`)) AS `concat(a1,min(c))`,`test`.`t1`.`b` AS `b`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` < 'd') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select concat(`test`.`t1`.`a1`,`test`.`t1`.`a2`) AS `concat(a1,a2)`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` < 'd') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select concat(ord(min(`test`.`t1`.`b`)),ord(max(`test`.`t1`.`b`))) AS `concat(ord(min(b)),ord(max(b)))`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2` select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b; a1 a2 b concat(min(c), max(c)) a a a a111d111 a a b e112h112 a b a i121l121 a b b m122p122 b a a a211d211 b a b e212h212 b b a i221l221 b b b m222p222 c a a a311d311 c a b e312h312 c b a i321l321 c b b m322p322 select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b; concat(a1,min(c)) b aa111 a ae112 b ai121 a am122 b ba211 a be212 b bi221 a bm222 b ca311 a ce312 b ci321 a cm322 b select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b; concat(a1,min(c)) b max(c) aa111 a d111 ae112 b h112 ai121 a l121 am122 b p122 ba211 a d211 be212 b h212 bi221 a l221 bm222 b p222 ca311 a d311 ce312 b h312 ci321 a l321 cm322 b p322 select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; concat(a1,a2) b min(c) max(c) aa a a111 d111 aa b e112 h112 ab a i121 l121 ab b m122 p122 ba a a211 d211 ba b e212 h212 bb a i221 l221 bb b m222 p222 ca a a311 d311 ca b e312 h312 cb a i321 l321 cb b m322 p322 select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2; concat(ord(min(b)),ord(max(b))) min(b) max(b) 9798 a b 9798 a b 9798 a b 9798 a b 9798 a b 9798 a b 9798 a b 9798 a b explain select a1,a2,b,d,min(c),max(c) from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL idx_t1_1,idx_t1_2 NULL NULL NULL 128 100.00 Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`d` AS `d`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,d from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL idx_t1_1,idx_t1_2 NULL NULL NULL 128 100.00 Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`d` AS `d` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select a1,a2,min(b),max(b) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 33.33 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`c` > 'a111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain extended select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 11.02 Using where; Using temporary; Using filesort Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`d` > 'xy2')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select a1,a2,b,c from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 11.02 Using where; Using temporary; Using filesort Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`d` > 'xy2')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c` explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 164 34.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where (((`test`.`t2`.`b` = 'b') and (`test`.`t2`.`a2` = 'a')) or (`test`.`t2`.`b` < 'b')) group by `test`.`t2`.`a1` explain extended select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 33.33 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`c` > 'a111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 164 1.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,min(`test`.`t2`.`b`) AS `min(b)`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'a111') and (`test`.`t2`.`a2` = 'a')) group by `test`.`t2`.`a1` select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1; a1 a2 min(b) c a a a a111 explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b = 'a') group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 164 10.90 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,max(`test`.`t2`.`c`) AS `max(c)`,min(`test`.`t2`.`c`) AS `min(c)` from `test`.`t2` where (((`test`.`t2`.`b` = 'b') and (`test`.`t2`.`a2` = 'a')) or (`test`.`t2`.`b` = 'a')) group by `test`.`t2`.`a1` explain select a1,a2,b,min(c),max(c) from t2 where (c > 'a000') and (c <= 'd999') and (c like '_8__') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 164 1.23 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,min(`test`.`t2`.`c`) AS `min(c)`,max(`test`.`t2`.`c`) AS `max(c)` from `test`.`t2` where ((`test`.`t2`.`c` > 'a000') and (`test`.`t2`.`c` <= 'd999') and (`test`.`t2`.`c` like '_8__')) group by `test`.`t2`.`a1`,`test`.`t2`.`a2`,`test`.`t2`.`b` explain select a1, a2, b, c, min(d), max(d) from t1 group by a1,a2,b,c; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL idx_t1_1 NULL NULL NULL 128 100.00 Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,min(`test`.`t1`.`d`) AS `min(d)`,max(`test`.`t1`.`d`) AS `max(d)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c` explain select a1,a2,count(a2) from t1 group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,count(`test`.`t1`.`a2`) AS `count(a2)` from `test`.`t1` group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 75.00 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,count(`test`.`t1`.`a2`) AS `count(a2)` from `test`.`t1` where (`test`.`t1`.`a1` > 'a') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 75.00 Using where; Using index Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select sum(ord(`test`.`t1`.`a1`)) AS `sum(ord(a1))` from `test`.`t1` where (`test`.`t1`.`a1` > 'a') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select distinct(a1) from t1 where ord(a2) = 98; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 100.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1` from `test`.`t1` where (ord(`test`.`t1`.`a2`) = 98) select distinct(a1) from t1 where ord(a2) = 98; a1 a b c d explain select a1 from t1 where a2 = 'b' group by a1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1` from `test`.`t1` where (`test`.`t1`.`a2` = 'b') group by `test`.`t1`.`a1` select a1 from t1 where a2 = 'b' group by a1; a1 a b c d explain select distinct a1 from t1 where a2 = 'b'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 5 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1` from `test`.`t1` where (`test`.`t1`.`a2` = 'b') select distinct a1 from t1 where a2 = 'b'; a1 a b c d drop table t1,t2,t3; create table t1 (c1 int not null,c2 int not null, primary key(c1,c2)); insert into t1 (c1,c2) values (10,1),(10,2),(10,3),(20,4),(20,5),(20,6),(30,7),(30,8),(30,9); select distinct c1, c2 from t1 order by c2; c1 c2 10 1 10 2 10 3 20 4 20 5 20 6 30 7 30 8 30 9 select c1,min(c2) as c2 from t1 group by c1 order by c2; c1 c2 10 1 20 4 30 7 select c1,c2 from t1 group by c1,c2 order by c2; c1 c2 10 1 10 2 10 3 20 4 20 5 20 6 30 7 30 8 30 9 drop table t1; CREATE TABLE t1 (a varchar(5), b int(11), PRIMARY KEY (a,b)); INSERT INTO t1 VALUES ('AA',1), ('AA',2), ('AA',3), ('BB',1), ('AA',4); OPTIMIZE TABLE t1; Table Op Msg_type Msg_text test.t1 optimize status OK SELECT a FROM t1 WHERE a='AA' GROUP BY a; a AA SELECT a FROM t1 WHERE a='BB' GROUP BY a; a BB EXPLAIN SELECT a FROM t1 WHERE a='AA' GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range PRIMARY PRIMARY 7 NULL 1 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = 'AA') group by `test`.`t1`.`a` EXPLAIN SELECT a FROM t1 WHERE a='BB' GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ref PRIMARY PRIMARY 7 const 1 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = 'BB') group by `test`.`t1`.`a` SELECT DISTINCT a FROM t1 WHERE a='BB'; a BB SELECT DISTINCT a FROM t1 WHERE a LIKE 'B%'; a BB SELECT a FROM t1 WHERE a LIKE 'B%' GROUP BY a; a BB DROP TABLE t1; CREATE TABLE t1 ( a int(11) NOT NULL DEFAULT '0', b varchar(16) COLLATE latin1_general_ci NOT NULL DEFAULT '', PRIMARY KEY (a,b) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE PROCEDURE a(x INT) BEGIN DECLARE rnd INT; DECLARE cnt INT; WHILE x > 0 DO SET rnd= x % 100; SET cnt = (SELECT COUNT(*) FROM t1 WHERE a = rnd); INSERT INTO t1(a,b) VALUES (rnd, CAST(cnt AS CHAR)); SET x= x - 1; END WHILE; END| CALL a(1000); SELECT a FROM t1 WHERE a=0; a 0 0 0 0 0 0 0 0 0 0 SELECT DISTINCT a FROM t1 WHERE a=0; a 0 SELECT COUNT(DISTINCT a) FROM t1 WHERE a=0; COUNT(DISTINCT a) 1 DROP TABLE t1; DROP PROCEDURE a; CREATE TABLE t1 (a varchar(64) NOT NULL default '', PRIMARY KEY(a)); INSERT INTO t1 (a) VALUES (''), ('CENTRAL'), ('EASTERN'), ('GREATER LONDON'), ('NORTH CENTRAL'), ('NORTH EAST'), ('NORTH WEST'), ('SCOTLAND'), ('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN'); EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index PRIMARY PRIMARY 66 NULL 11 100.00 Using index Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a` AS `a`,`test`.`t1`.`a` AS `a` from `test`.`t1` order by `test`.`t1`.`a` SELECT DISTINCT a,a FROM t1 ORDER BY a; a a CENTRAL CENTRAL EASTERN EASTERN GREATER LONDON GREATER LONDON NORTH CENTRAL NORTH CENTRAL NORTH EAST NORTH EAST NORTH WEST NORTH WEST SCOTLAND SCOTLAND SOUTH EAST SOUTH EAST SOUTH WEST SOUTH WEST WESTERN WESTERN DROP TABLE t1; CREATE TABLE t1 (id1 INT, id2 INT); CREATE TABLE t2 (id2 INT, id3 INT, id5 INT); CREATE TABLE t3 (id3 INT, id4 INT); CREATE TABLE t4 (id4 INT); CREATE TABLE t5 (id5 INT, id6 INT); CREATE TABLE t6 (id6 INT); INSERT INTO t1 VALUES(1,1); INSERT INTO t2 VALUES(1,1,1); INSERT INTO t3 VALUES(1,1); INSERT INTO t4 VALUES(1); INSERT INTO t5 VALUES(1,1); INSERT INTO t6 VALUES(1); SELECT * FROM t1 NATURAL JOIN (t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6) ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5)); id2 id1 id3 id5 id4 id3 id6 id5 1 1 1 1 1 1 1 1 SELECT * FROM t1 NATURAL JOIN (((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6) on t3.id4 = t5.id5) JOIN t2 ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5)); id2 id1 id4 id3 id6 id5 id3 id5 1 1 1 1 1 1 1 1 SELECT * FROM t1 NATURAL JOIN ((t3 join (t5 NATURAL JOIN t6)) JOIN t2); id2 id1 id3 id4 id6 id5 id3 id5 1 1 1 1 1 1 1 1 SELECT * FROM (t2 JOIN (t3 NATURAL JOIN t4, t5 NATURAL JOIN t6) ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5)) NATURAL JOIN t1; id2 id3 id5 id4 id3 id6 id5 id1 1 1 1 1 1 1 1 1 SELECT * FROM (t2 JOIN ((t3 NATURAL JOIN t4) join (t5 NATURAL JOIN t6))) NATURAL JOIN t1; id2 id3 id5 id4 id3 id6 id5 id1 1 1 1 1 1 1 1 1 DROP TABLE t1,t2,t3,t4,t5,t6; CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b), KEY b (b)); INSERT INTO t1 VALUES (1,1),(1,2),(1,0),(1,3); INSERT INTO t1 VALUES (2,1),(2,2),(2,0),(2,3); INSERT INTO t1 VALUES (3,1),(3,2),(3,0),(3,3); ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK explain SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range PRIMARY,b PRIMARY 8 NULL 1 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select max(`test`.`t1`.`b`) AS `MAX(b)`,`test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and (`test`.`t1`.`b` < 2)) group by `test`.`t1`.`a` SELECT MAX(b), a FROM t1 WHERE b < 2 AND a = 1 GROUP BY a; MAX(b) a 1 1 SELECT MIN(b), a FROM t1 WHERE b > 1 AND a = 1 GROUP BY a; MIN(b) a 2 1 CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c)); INSERT INTO t2 SELECT a,b,b FROM t1; ANALYZE TABLE t2; Table Op Msg_type Msg_text test.t2 analyze status OK explain SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range PRIMARY PRIMARY 12 NULL 1 100.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select min(`test`.`t2`.`c`) AS `MIN(c)` from `test`.`t2` where ((`test`.`t2`.`a` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`c` > 1)) group by `test`.`t2`.`a` SELECT MIN(c) FROM t2 WHERE b = 2 and a = 1 and c > 1 GROUP BY a; MIN(c) 2 DROP TABLE t1,t2; CREATE TABLE t1 (a INT, b INT, INDEX (a,b)); INSERT INTO t1 (a, b) VALUES (1,1), (1,2), (1,3), (1,4), (1,5), (2,2), (2,3), (2,1), (3,1), (4,1), (4,2), (4,3), (4,4), (4,5), (4,6), (5,1), (5,2), (5,3), (5,4), (5,5); EXPLAIN SELECT max(b), a FROM t1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select max(`test`.`t1`.`b`) AS `max(b)`,`test`.`t1`.`a` AS `a` from `test`.`t1` group by `test`.`t1`.`a` FLUSH STATUS; SELECT max(b), a FROM t1 GROUP BY a; max(b) a 5 1 3 2 1 3 6 4 5 5 SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 EXPLAIN SELECT max(b), a FROM t1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select max(`test`.`t1`.`b`) AS `max(b)`,`test`.`t1`.`a` AS `a` from `test`.`t1` group by `test`.`t1`.`a` FLUSH STATUS; CREATE TABLE t2 SELECT max(b), a FROM t1 GROUP BY a; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 FLUSH STATUS; SELECT * FROM (SELECT max(b), a FROM t1 GROUP BY a) b; max(b) a 5 1 3 2 1 3 6 4 5 5 SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 FLUSH STATUS; (SELECT max(b), a FROM t1 GROUP BY a) UNION (SELECT max(b), a FROM t1 GROUP BY a); max(b) a 5 1 3 2 1 3 6 4 5 5 SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 20 Handler_read_next 0 EXPLAIN (SELECT max(b), a FROM t1 GROUP BY a) UNION (SELECT max(b), a FROM t1 GROUP BY a); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by 2 UNION t1 NULL range a a 5 NULL 11 100.00 Using index for group-by NULL UNION RESULT <union1,2> NULL ALL NULL NULL NULL NULL NULL NULL Using temporary Warnings: Note 1003 (/* select#1 */ select max(`test`.`t1`.`b`) AS `max(b)`,`test`.`t1`.`a` AS `a` from `test`.`t1` group by `test`.`t1`.`a`) union (/* select#2 */ select max(`test`.`t1`.`b`) AS `max(b)`,`test`.`t1`.`a` AS `a` from `test`.`t1` group by `test`.`t1`.`a`) EXPLAIN SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1 AS t1_outer; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer NULL index NULL a 10 NULL 20 100.00 Using index 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select (/* select#2 */ select max(`test`.`t1`.`b`) from `test`.`t1` group by `test`.`t1`.`a` having (`test`.`t1`.`a` < 2)) AS `x` from `test`.`t1` `t1_outer` EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE EXISTS (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer NULL index NULL a 10 NULL 20 100.00 Using index 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` `t1_outer` where 1 EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` `t1_outer` where 0 EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE a IN (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer NULL index NULL a 10 NULL 20 100.00 Using where; Using index 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` `t1_outer` where <in_optimizer>(`test`.`t1_outer`.`a`,`test`.`t1_outer`.`a` in ( <materialize> (/* select#2 */ select max(`test`.`t1`.`b`) from `test`.`t1` group by `test`.`t1`.`a` having (`test`.`t1`.`a` < 2) ), <primary_index_lookup>(`test`.`t1_outer`.`a` in <temporary table> on <auto_key> where ((`test`.`t1_outer`.`a` = `materialized-subquery`.`max(b)`))))) EXPLAIN SELECT 1 FROM t1 AS t1_outer GROUP BY a HAVING a > (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer NULL range a a 5 NULL 11 100.00 Using index for group-by 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` `t1_outer` group by `test`.`t1_outer`.`a` having (`test`.`t1_outer`.`a` > (/* select#2 */ select max(`test`.`t1`.`b`) from `test`.`t1` group by `test`.`t1`.`a` having (`test`.`t1`.`a` < 2))) EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2 ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) AND t1_outer1.b = t1_outer2.b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer1 NULL ref a a 5 const 5 100.00 Using where; Using index 1 PRIMARY t1_outer2 NULL index NULL a 10 NULL 20 10.00 Using where; Using index; Using join buffer (Block Nested Loop) 2 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` `t1_outer1` join `test`.`t1` `t1_outer2` where ((`test`.`t1_outer2`.`b` = `test`.`t1_outer1`.`b`) and (`test`.`t1_outer1`.`a` = (/* select#2 */ select max(`test`.`t1`.`b`) from `test`.`t1` group by `test`.`t1`.`a` having (`test`.`t1`.`a` < 2)))) EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1_outer2 NULL index NULL a 10 NULL 20 100.00 Using index 2 SUBQUERY t1_outer NULL index NULL a 10 NULL 20 100.00 Using index 3 SUBQUERY t1 NULL range a a 5 NULL 11 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select (/* select#2 */ select (/* select#3 */ select max(`test`.`t1`.`b`) from `test`.`t1` group by `test`.`t1`.`a` having (`test`.`t1`.`a` < 2)) AS `x` from `test`.`t1` `t1_outer`) AS `x2` from `test`.`t1` `t1_outer2` CREATE TABLE t3 LIKE t1; FLUSH STATUS; INSERT INTO t3 SELECT a,MAX(b) FROM t1 GROUP BY a; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 DELETE FROM t3; FLUSH STATUS; INSERT INTO t3 SELECT 1, (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) FROM t1 LIMIT 1; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 FLUSH STATUS; DELETE FROM t3 WHERE (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) > 10000; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 0 FLUSH STATUS; DELETE FROM t3 WHERE (SELECT (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1) > 10000; ERROR 21000: Subquery returns more than 1 row SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 10 Handler_read_next 1 DROP TABLE t1,t2,t3; CREATE TABLE t1 (a int, INDEX idx(a)); INSERT INTO t1 VALUES (4), (2), (1), (2), (4), (2), (1), (4), (4), (2), (1), (2), (2), (4), (1), (4), (4), (2), (1), (2), (2), (4), (1), (4); EXPLAIN SELECT DISTINCT(a) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx idx 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a` AS `a` from `test`.`t1` SELECT DISTINCT(a) FROM t1; a 1 2 4 EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range idx idx 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct sql_big_result `test`.`t1`.`a` AS `a` from `test`.`t1` SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1; a 1 2 4 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT); INSERT INTO t1 (a, b) VALUES (1,1), (1,2), (1,3); INSERT INTO t1 SELECT a + 1, b FROM t1; INSERT INTO t1 SELECT a + 2, b FROM t1; INSERT INTO t1 SELECT a + 4, b FROM t1; EXPLAIN SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 24 100.00 Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,min(`test`.`t1`.`b`) AS `MIN(b)`,max(`test`.`t1`.`b`) AS `MAX(b)` from `test`.`t1` group by `test`.`t1`.`a` desc order by `test`.`t1`.`a` desc SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; a MIN(b) MAX(b) 8 1 3 7 1 3 6 1 3 5 1 3 4 1 3 3 1 3 2 1 3 1 1 3 CREATE INDEX break_it ON t1 (a, b); EXPLAIN SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range break_it break_it 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,min(`test`.`t1`.`b`) AS `MIN(b)`,max(`test`.`t1`.`b`) AS `MAX(b)` from `test`.`t1` group by `test`.`t1`.`a` order by `test`.`t1`.`a` SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; a MIN(b) MAX(b) 1 1 3 2 1 3 3 1 3 4 1 3 5 1 3 6 1 3 7 1 3 8 1 3 EXPLAIN SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range break_it break_it 10 NULL 10 100.00 Using index for group-by; Using temporary; Using filesort Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,min(`test`.`t1`.`b`) AS `MIN(b)`,max(`test`.`t1`.`b`) AS `MAX(b)` from `test`.`t1` group by `test`.`t1`.`a` desc order by `test`.`t1`.`a` desc SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; a MIN(b) MAX(b) 8 1 3 7 1 3 6 1 3 5 1 3 4 1 3 3 1 3 2 1 3 1 1 3 EXPLAIN SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index break_it break_it 10 NULL 24 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,min(`test`.`t1`.`b`) AS `MIN(b)`,max(`test`.`t1`.`b`) AS `MAX(b)`,avg(`test`.`t1`.`b`) AS `AVG(b)` from `test`.`t1` group by `test`.`t1`.`a` desc order by `test`.`t1`.`a` desc SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; a MIN(b) MAX(b) AVG(b) 8 1 3 2.0000 7 1 3 2.0000 6 1 3 2.0000 5 1 3 2.0000 4 1 3 2.0000 3 1 3 2.0000 2 1 3 2.0000 1 1 3 2.0000 DROP TABLE t1; create table t1 (a int, b int, primary key (a,b), key `index` (a,b)) engine=MyISAM; insert into t1 (a,b) values (0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6), (0,7),(0,8),(0,9),(0,10),(0,11),(0,12),(0,13), (1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6), (1,7),(1,8),(1,9),(1,10),(1,11),(1,12),(1,13), (2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6), (2,7),(2,8),(2,9),(2,10),(2,11),(2,12),(2,13), (3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6), (3,7),(3,8),(3,9),(3,10),(3,11),(3,12),(3,13); insert into t1 (a,b) select a, max(b)+1 from t1 where a = 0 group by a; select * from t1; a b 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 3 12 3 13 explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range PRIMARY,index index 4 NULL 3 100.00 Using where; Using index for group-by; Using temporary Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select sql_buffer_result `test`.`t1`.`a` AS `a`,(max(`test`.`t1`.`b`) + 1) AS `max(b)+1` from `test`.`t1` where (`test`.`t1`.`a` = 0) group by `test`.`t1`.`a` drop table t1; CREATE TABLE t1 (a int, b int, c int, d int, KEY foo (c,d,a,b), KEY bar (c,a,b,d)); INSERT INTO t1 VALUES (1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (1, 1, 1, 4); INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT a,b,c+1,d FROM t1; EXPLAIN SELECT DISTINCT c FROM t1 WHERE d=4; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range foo,bar foo 10 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`c` AS `c` from `test`.`t1` where (`test`.`t1`.`d` = 4) SELECT DISTINCT c FROM t1 WHERE d=4; c 1 2 DROP TABLE t1; # # Bug #45386: Wrong query result with MIN function in field list, # WHERE and GROUP BY clause # CREATE TABLE t (a INT, b INT, INDEX (a,b)); INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1); INSERT INTO t SELECT * FROM t; INSERT INTO t SELECT * FROM t; INSERT INTO t SELECT * FROM t; # test MIN #should use range with index for group by EXPLAIN SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL range a a 10 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,min(`test`.`t`.`b`) AS `MIN(b)` from `test`.`t` where (`test`.`t`.`b` <> 0) group by `test`.`t`.`a` #should return 1 row SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a; a MIN(b) 2 1 # test MAX #should use range with index for group by EXPLAIN SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL range a a 10 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` where (`test`.`t`.`b` <> 1) group by `test`.`t`.`a` #should return 1 row SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a; a MAX(b) 2 0 # test 3 ranges and use the middle one INSERT INTO t SELECT a, 2 FROM t; #should use range with index for group by EXPLAIN SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL range a a 10 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` where ((`test`.`t`.`b` > 0) and (`test`.`t`.`b` < 2)) group by `test`.`t`.`a` #should return 1 row SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a; a MAX(b) 2 1 DROP TABLE t; # # Bug #48472: Loose index scan inappropriately chosen for some WHERE # conditions # CREATE TABLE t (a INT, b INT, INDEX (a,b)); INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1); INSERT INTO t SELECT * FROM t; SELECT a, MAX(b) FROM t WHERE 0=b+0 GROUP BY a; a MAX(b) 2 0 DROP TABLE t; End of 5.0 tests # # Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) results in # server crash # CREATE TABLE t (a INT, b INT, INDEX (a,b)); INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1); INSERT INTO t SELECT * FROM t; SELECT a, MAX(b) FROM t WHERE b GROUP BY a; a MAX(b) 2 1 DROP TABLE t; CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL, KEY (b)); INSERT INTO t1 VALUES(1,1),(2,1); ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK SELECT 1 AS c, b FROM t1 WHERE b IN (1,2) GROUP BY c, b; c b 1 1 SELECT a FROM t1 WHERE b=1; a 1 2 DROP TABLE t1; # # Bug#47762: Incorrect result from MIN() when WHERE tests NOT NULL column # for NULL # ## Test for NULLs allowed CREATE TABLE t1 ( a INT, KEY (a) ); INSERT INTO t1 VALUES (1), (2), (3); EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a <> NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a <> NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a > NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a > NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a < NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a < NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a <=> NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL No matching min/max row Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a <=> NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table x x x NULL x x x x x x 100.00 Using where; Using index Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a IS NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL No matching min/max row Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a IS NULL; MIN( a ) NULL INSERT INTO t1 VALUES (NULL), (NULL); EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a <> NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a <> NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a > NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a > NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a < NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a < NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a <=> NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL Select tables optimized away Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a <=> NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table x x x NULL x x x x x x 100.00 Using where; Using index Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a IS NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL Select tables optimized away Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a IS NULL; MIN( a ) NULL DROP TABLE t1; ## Test for NOT NULLs CREATE TABLE t1 ( a INT NOT NULL PRIMARY KEY); INSERT INTO t1 VALUES (1), (2), (3); # # NULL-safe operator test disabled for non-NULL indexed columns. # # See bugs # # - Bug#52173: Reading NULL value from non-NULL index gives # wrong result in embedded server # # - Bug#52174: Sometimes wrong plan when reading a MAX value from # non-NULL index # EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a <> NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a <> NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a > NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a > NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a < NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a < NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL no matching row in const table x x x NULL x x x x x x 100.00 Using where; Using index Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) NULL EXPLAIN SELECT MIN( a ) FROM t1 WHERE a IS NULL; id select_type table partitions type possible_keys key key_len ref rows filtered Extra x x x NULL x x x x x x NULL Impossible WHERE Warnings: x x x SELECT MIN( a ) FROM t1 WHERE a IS NULL; MIN( a ) NULL DROP TABLE t1; # # Bug#53859: Valgrind: opt_sum_query(TABLE_LIST*, List<Item>&, Item*) at # opt_sum.cc:305 # CREATE TABLE t1 ( a INT, KEY (a) ); INSERT INTO t1 VALUES (1), (2), (3); SELECT MIN( a ) AS min_a FROM t1 WHERE a > 1 AND a IS NULL ORDER BY min_a; min_a NULL DROP TABLE t1; End of 5.1 tests # # WL#3220 (Loose index scan for COUNT DISTINCT) # CREATE TABLE t1 (a INT, b INT, c INT, KEY (a,b)); INSERT INTO t1 VALUES (1,1,1), (1,2,1), (1,3,1), (1,4,1); INSERT INTO t1 SELECT a, b + 4, 1 FROM t1; INSERT INTO t1 SELECT a + 1, b, 1 FROM t1; INSERT INTO t1 SELECT a + 2, b + 8, 1 FROM t1; CREATE TABLE t2 (a INT, b INT, c INT, d INT, e INT, f INT, KEY (a,b,c)); INSERT INTO t2 VALUES (1,1,1,1,1,1), (1,2,1,1,1,1), (1,3,1,1,1,1), (1,4,1,1,1,1); INSERT INTO t2 SELECT a, b + 4, c,d,e,f FROM t2; INSERT INTO t2 SELECT a + 1, b, c,d,e,f FROM t2; INSERT INTO t2 SELECT a + 2, b + 8, c,d,e,f FROM t2; EXPLAIN SELECT COUNT(DISTINCT a) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` SELECT COUNT(DISTINCT a) FROM t1; COUNT(DISTINCT a) 4 EXPLAIN SELECT COUNT(DISTINCT a,b) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`,`test`.`t1`.`b`) AS `COUNT(DISTINCT a,b)` from `test`.`t1` SELECT COUNT(DISTINCT a,b) FROM t1; COUNT(DISTINCT a,b) 32 EXPLAIN SELECT COUNT(DISTINCT b,a) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`b`,`test`.`t1`.`a`) AS `COUNT(DISTINCT b,a)` from `test`.`t1` SELECT COUNT(DISTINCT b,a) FROM t1; COUNT(DISTINCT b,a) 32 EXPLAIN SELECT COUNT(DISTINCT b) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index a a 10 NULL 32 100.00 Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`b`) AS `COUNT(DISTINCT b)` from `test`.`t1` SELECT COUNT(DISTINCT b) FROM t1; COUNT(DISTINCT b) 16 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` group by `test`.`t1`.`a` SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a; COUNT(DISTINCT a) 1 1 1 1 EXPLAIN SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`b`) AS `COUNT(DISTINCT b)` from `test`.`t1` group by `test`.`t1`.`a` SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a; COUNT(DISTINCT b) 8 8 8 8 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index a a 10 NULL 32 100.00 Using index; Using filesort Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` group by `test`.`t1`.`b` SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b; COUNT(DISTINCT a) 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 EXPLAIN SELECT DISTINCT COUNT(DISTINCT a) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` SELECT DISTINCT COUNT(DISTINCT a) FROM t1; COUNT(DISTINCT a) 4 EXPLAIN SELECT COUNT(DISTINCT a, b + 0) FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index NULL a 10 NULL 32 100.00 Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`,(`test`.`t1`.`b` + 0)) AS `COUNT(DISTINCT a, b + 0)` from `test`.`t1` SELECT COUNT(DISTINCT a, b + 0) FROM t1; COUNT(DISTINCT a, b + 0) 32 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT b) < 20; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL index NULL a 10 NULL 32 100.00 Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` having (count(distinct `test`.`t1`.`b`) < 20) SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT b) < 20; COUNT(DISTINCT a) 4 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 32 100.00 NULL Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)` from `test`.`t1` having (count(distinct `test`.`t1`.`c`) < 10) SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10; COUNT(DISTINCT a) 4 EXPLAIN SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` having (count(distinct `test`.`t1`.`a`) < 10) SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10; 1 1 EXPLAIN SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` group by `test`.`t1`.`a` having (count(distinct `test`.`t1`.`b`) > 1) SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1; 1 1 1 1 1 EXPLAIN SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1_1 NULL index a a 10 NULL 32 100.00 Using index; Using temporary; Using filesort 1 SIMPLE t1_2 NULL index NULL a 10 NULL 32 100.00 Using index; Using join buffer (Block Nested Loop) Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1_1`.`a`) AS `COUNT(DISTINCT t1_1.a)` from `test`.`t1` `t1_1` join `test`.`t1` `t1_2` group by `test`.`t1_1`.`a` SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a; COUNT(DISTINCT t1_1.a) 1 1 1 1 EXPLAIN SELECT COUNT(DISTINCT a), 12 FROM t1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT a)`,12 AS `12` from `test`.`t1` SELECT COUNT(DISTINCT a), 12 FROM t1; COUNT(DISTINCT a) 12 4 12 EXPLAIN SELECT COUNT(DISTINCT a, b, c) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 15 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`c`) AS `COUNT(DISTINCT a, b, c)` from `test`.`t2` SELECT COUNT(DISTINCT a, b, c) FROM t2; COUNT(DISTINCT a, b, c) 32 EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 5 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`) AS `COUNT(DISTINCT a)`,sum(distinct `test`.`t2`.`a`) AS `SUM(DISTINCT a)`,avg(distinct `test`.`t2`.`a`) AS `AVG(DISTINCT a)` from `test`.`t2` SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2; COUNT(DISTINCT a) SUM(DISTINCT a) AVG(DISTINCT a) 4 10 2.5000 EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 32 100.00 NULL Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`) AS `COUNT(DISTINCT a)`,sum(distinct `test`.`t2`.`a`) AS `SUM(DISTINCT a)`,avg(distinct `test`.`t2`.`f`) AS `AVG(DISTINCT f)` from `test`.`t2` SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2; COUNT(DISTINCT a) SUM(DISTINCT a) AVG(DISTINCT f) 4 10 1.0000 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT a, b)`,count(distinct `test`.`t2`.`b`,`test`.`t2`.`a`) AS `COUNT(DISTINCT b, a)` from `test`.`t2` SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, a) 32 32 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 32 100.00 NULL Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT a, b)`,count(distinct `test`.`t2`.`b`,`test`.`t2`.`f`) AS `COUNT(DISTINCT b, f)` from `test`.`t2` SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, f) 32 16 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 32 100.00 NULL Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT a, b)`,count(distinct `test`.`t2`.`b`,`test`.`t2`.`d`) AS `COUNT(DISTINCT b, d)` from `test`.`t2` SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, d) 32 16 EXPLAIN SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 15 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`c` AS `c`,count(distinct `test`.`t2`.`c`,`test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT c, a, b)` from `test`.`t2` group by `test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`c` SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c; a c COUNT(DISTINCT c, a, b) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 3 1 1 3 1 1 3 1 1 3 1 1 3 1 1 3 1 1 3 1 1 3 1 1 4 1 1 4 1 1 4 1 1 4 1 1 4 1 1 4 1 1 4 1 1 4 1 1 EXPLAIN SELECT COUNT(DISTINCT c, a, b) FROM t2 WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 5 NULL 1 11.11 Using where; Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`c`,`test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT c, a, b)` from `test`.`t2` where ((`test`.`t2`.`a` > 5) and (`test`.`t2`.`b` between 10 and 20)) group by `test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`c` SELECT COUNT(DISTINCT c, a, b) FROM t2 WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c; COUNT(DISTINCT c, a, b) EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 WHERE a = 5 GROUP BY b; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ref a a 5 const 1 100.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`b`) AS `COUNT(DISTINCT b)`,sum(distinct `test`.`t2`.`b`) AS `SUM(DISTINCT b)` from `test`.`t2` where (`test`.`t2`.`a` = 5) group by `test`.`t2`.`b` SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 WHERE a = 5 GROUP BY b; COUNT(DISTINCT b) SUM(DISTINCT b) EXPLAIN SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,count(distinct `test`.`t2`.`b`) AS `COUNT(DISTINCT b)`,sum(distinct `test`.`t2`.`b`) AS `SUM(DISTINCT b)` from `test`.`t2` group by `test`.`t2`.`a` SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; a COUNT(DISTINCT b) SUM(DISTINCT b) 1 8 36 2 8 36 3 8 100 4 8 100 EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 10 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`b`) AS `COUNT(DISTINCT b)`,sum(distinct `test`.`t2`.`b`) AS `SUM(DISTINCT b)` from `test`.`t2` group by `test`.`t2`.`a` SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; COUNT(DISTINCT b) SUM(DISTINCT b) 8 36 8 36 8 100 8 100 EXPLAIN SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL ALL a NULL NULL NULL 32 3.12 Using where Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT a, b)` from `test`.`t2` where ((`test`.`t2`.`d` = 42) and (`test`.`t2`.`c` = 13)) SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42; COUNT(DISTINCT a, b) 0 EXPLAIN SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2 WHERE b = 13 AND c = 42 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 15 NULL 10 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,count(distinct `test`.`t2`.`a`) AS `COUNT(DISTINCT a)`,sum(distinct `test`.`t2`.`a`) AS `SUM(DISTINCT a)` from `test`.`t2` where ((`test`.`t2`.`c` = 42) and (`test`.`t2`.`b` = 13)) group by `test`.`t2`.`a` SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2 WHERE b = 13 AND c = 42 GROUP BY a; a COUNT(DISTINCT a) SUM(DISTINCT a) # This query could have been resolved using loose index scan since # the second part of count(..) is defined by a constant predicate EXPLAIN SELECT COUNT(DISTINCT a, b), SUM(DISTINCT a) FROM t2 WHERE b = 42; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index NULL a 15 NULL 32 10.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select count(distinct `test`.`t2`.`a`,`test`.`t2`.`b`) AS `COUNT(DISTINCT a, b)`,sum(distinct `test`.`t2`.`a`) AS `SUM(DISTINCT a)` from `test`.`t2` where (`test`.`t2`.`b` = 42) SELECT COUNT(DISTINCT a, b), SUM(DISTINCT a) FROM t2 WHERE b = 42; COUNT(DISTINCT a, b) SUM(DISTINCT a) 0 NULL EXPLAIN SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index a a 15 NULL 32 100.00 Using index Warnings: Note 1003 /* select#1 */ select sum(distinct `test`.`t2`.`a`) AS `SUM(DISTINCT a)`,max(`test`.`t2`.`b`) AS `MAX(b)` from `test`.`t2` group by `test`.`t2`.`a` SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a; SUM(DISTINCT a) MAX(b) 1 8 2 8 3 16 4 16 EXPLAIN SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL range a a 15 NULL 10 100.00 Using index for group-by Warnings: Note 1003 /* select#1 */ select (42 * ((`test`.`t2`.`a` + `test`.`t2`.`c`) + count(distinct `test`.`t2`.`c`,`test`.`t2`.`a`,`test`.`t2`.`b`))) AS `42 * (a + c + COUNT(DISTINCT c, a, b))` from `test`.`t2` group by `test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`c` SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c; 42 * (a + c + COUNT(DISTINCT c, a, b)) 126 126 126 126 126 126 126 126 168 168 168 168 168 168 168 168 210 210 210 210 210 210 210 210 252 252 252 252 252 252 252 252 EXPLAIN SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 NULL index a a 15 NULL 32 100.00 Using index Warnings: Note 1003 /* select#1 */ select (sum(distinct `test`.`t2`.`a`) + max(`test`.`t2`.`b`)) AS `(SUM(DISTINCT a) + MAX(b))` from `test`.`t2` group by `test`.`t2`.`a` SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a; (SUM(DISTINCT a) + MAX(b)) 9 10 19 20 DROP TABLE t1,t2; # end of WL#3220 tests # # Bug#50539: Wrong result when loose index scan is used for an aggregate # function with distinct # CREATE TABLE t1 ( f1 int(11) NOT NULL DEFAULT '0', f2 char(1) NOT NULL DEFAULT '', PRIMARY KEY (f1,f2) ) ; insert into t1 values(1,'A'),(1 , 'B'), (1, 'C'), (2, 'A'), (3, 'A'), (3, 'B'), (3, 'C'), (3, 'D'); SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1; f1 COUNT(DISTINCT f2) 1 3 2 1 3 4 explain SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range PRIMARY PRIMARY 5 NULL 9 100.00 Using index for group-by (scanning) Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`f1` AS `f1`,count(distinct `test`.`t1`.`f2`) AS `COUNT(DISTINCT f2)` from `test`.`t1` group by `test`.`t1`.`f1` drop table t1; # End of test#50539. # # Bug#18497308 WRONG COST ESTIMATE FOR LOOSE INDEX SCAN WHEN # INDEX STATISTICS IS MISSING # CREATE TABLE t1 ( a INTEGER, b INTEGER, c INTEGER, d INTEGER, KEY foo (a,b,c,d) ) ENGINE=MyISAM; INSERT INTO t1 VALUES (1, 1, 1, 1), (1, 2, 1, 2), (1, 3, 1, 3), (1, 4, 1, 4); INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t1; EXPLAIN SELECT DISTINCT a FROM t1 WHERE b=4; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range foo foo 10 NULL 101 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select distinct `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`b` = 4) SELECT DISTINCT a FROM t1 WHERE b=4; a 1 DROP TABLE t1; # # Bug#17217128 - BAD INTERACTION BETWEEN MIN/MAX AND # "HAVING SUM(DISTINCT)": WRONG RESULTS. # CREATE TABLE t (a INT, b INT, KEY(a,b)); INSERT INTO t VALUES (1,1), (2,2), (3,3), (4,4), (1,0), (3,2), (4,5); set optimizer_trace_max_mem_size=1048576; set @@session.optimizer_trace='enabled=on'; set end_markers_in_json=on; ANALYZE TABLE t; Table Op Msg_type Msg_text test.t analyze status OK SELECT a, SUM(DISTINCT a), MIN(b) FROM t GROUP BY a; a SUM(DISTINCT a) MIN(b) 1 1 0 2 2 2 3 3 2 4 4 4 EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b) FROM t GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index a a 10 NULL 7 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,sum(distinct `test`.`t`.`a`) AS `SUM(DISTINCT a)`,min(`test`.`t`.`b`) AS `MIN(b)` from `test`.`t` group by `test`.`t`.`a` SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; a SUM(DISTINCT a) MAX(b) 1 1 1 2 2 2 3 3 3 4 4 5 EXPLAIN SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index a a 10 NULL 7 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,sum(distinct `test`.`t`.`a`) AS `SUM(DISTINCT a)`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` group by `test`.`t`.`a` SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); a MAX(b) 1 1 2 2 3 3 4 5 EXPLAIN SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index a a 10 NULL 7 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` group by `test`.`t`.`a` having sum(distinct `test`.`t`.`a`) SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; SUM(DISTINCT a) MIN(b) MAX(b) 10 0 5 EXPLAIN SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index a a 10 NULL 7 100.00 Using index Warnings: Note 1003 /* select#1 */ select sum(distinct `test`.`t`.`a`) AS `SUM(DISTINCT a)`,min(`test`.`t`.`b`) AS `MIN(b)`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; a SUM(DISTINCT a) MIN(b) MAX(b) 1 1 0 1 2 2 2 2 3 3 2 3 4 4 4 5 EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index a a 10 NULL 7 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t`.`a` AS `a`,sum(distinct `test`.`t`.`a`) AS `SUM(DISTINCT a)`,min(`test`.`t`.`b`) AS `MIN(b)`,max(`test`.`t`.`b`) AS `MAX(b)` from `test`.`t` group by `test`.`t`.`a` SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SET optimizer_trace_max_mem_size=DEFAULT; SET optimizer_trace=DEFAULT; SET end_markers_in_json=DEFAULT; DROP TABLE t; # # Bug #18066518: THE COST VALUE IS A NEGATIVE NUMBER FOR MERGE ENGINE # TABLE # CREATE TABLE t(a INT PRIMARY KEY) ENGINE = MERGE; EXPLAIN SELECT DISTINCT(a) FROM t; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t NULL index PRIMARY PRIMARY 4 NULL 0 0.00 Using index Warnings: Note 1003 /* select#1 */ select distinct `test`.`t`.`a` AS `a` from `test`.`t` SELECT DISTINCT(a) FROM t; a DROP TABLE t; # End of test#18066518. # # Bug #18486293: ASSERTION FAILED: KEYS >= 0.0 IN # COST_MODEL_TABLE::KEY_COMPARE_COST # CREATE TABLE t (b INT, KEY b_key (b)) ENGINE=INNODB PARTITION BY RANGE COLUMNS(b) (PARTITION p_part VALUES LESS THAN (0)); SELECT 1 FROM t WHERE b IN ('') GROUP BY b ; 1 DROP TABLE t; # End of test#18486293. # # Bug#18109609: LOOSE INDEX SCAN IS NOT USED WHEN IT SHOULD # CREATE TABLE t1 ( id INT AUTO_INCREMENT PRIMARY KEY, c1 INT, c2 INT, KEY(c1,c2)); INSERT INTO t1(c1,c2) VALUES (1, 1), (1,2), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), (4,2), (4,3), (4,4), (4,5), (4,6), (4,7), (4,8), (4,9), (4,10), (4,11), (4,12), (4,13), (4,14), (4,15), (4,16), (4,17), (4,18), (4,19), (4,20),(5,5); EXPLAIN SELECT MAX(c2), c1 FROM t1 WHERE c1 = 4 GROUP BY c1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL range c1 c1 5 NULL 7 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select max(`test`.`t1`.`c2`) AS `MAX(c2)`,`test`.`t1`.`c1` AS `c1` from `test`.`t1` where (`test`.`t1`.`c1` = 4) group by `test`.`t1`.`c1` FLUSH STATUS; SELECT MAX(c2), c1 FROM t1 WHERE c1 = 4 GROUP BY c1; MAX(c2) c1 20 4 SHOW SESSION STATUS LIKE 'Handler_read%'; Variable_name Value Handler_read_first 0 Handler_read_key 3 Handler_read_last 1 Handler_read_next 0 Handler_read_prev 0 Handler_read_rnd 0 Handler_read_rnd_next 0 DROP TABLE t1; # End of test for Bug#18109609 # # Bug#24423143 - WRONG RESULTS FOR AGGREGATE QUERY # # Test index merge tree scenario CREATE TABLE a ( aggr_col int, group_by_col int, KEY aggr_col_key (aggr_col), KEY group_by_col_key (group_by_col, aggr_col) ) ENGINE=InnoDB; set optimizer_trace_max_mem_size=1048576; set @@session.optimizer_trace='enabled=on'; set end_markers_in_json=on; INSERT INTO a VALUES (2,3),(5,6),(6,3),(7,NULL),(9,NULL),(10,6); ANALYZE TABLE a; Table Op Msg_type Msg_text test.a analyze status OK SELECT group_by_col, MIN(aggr_col) FROM a WHERE (group_by_col IN (70, 9)) OR (aggr_col > 2) GROUP BY group_by_col; group_by_col MIN(aggr_col) NULL 7 3 6 6 5 EXPLAIN SELECT group_by_col, MIN(aggr_col) FROM a WHERE (group_by_col IN (70 ,9)) OR (aggr_col > 2) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index aggr_col_key,group_by_col_key group_by_col_key 10 NULL 6 55.55 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` in (70,9)) or (`test`.`a`.`aggr_col` > 2)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'disjuntive_predicate_present' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT group_by_col, MAX(aggr_col) FROM a WHERE (group_by_col IN (70, 9)) OR (aggr_col < 9) GROUP BY group_by_col; group_by_col MAX(aggr_col) NULL 7 3 6 6 5 EXPLAIN SELECT group_by_col, MAX(aggr_col) FROM a WHERE (group_by_col IN (70 , 9)) OR (aggr_col < 9) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index aggr_col_key,group_by_col_key group_by_col_key 10 NULL 6 55.55 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` in (70,9)) or (`test`.`a`.`aggr_col` < 9)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'disjuntive_predicate_present' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Test IMPOSSIBLE TREE scenario ALTER TABLE a DROP KEY aggr_col_key; SELECT group_by_col, MIN(aggr_col) FROM a WHERE (group_by_col IN (70 ,9)) OR (aggr_col > 2) GROUP BY group_by_col; group_by_col MIN(aggr_col) NULL 7 3 6 6 5 EXPLAIN SELECT group_by_col, MIN(aggr_col) FROM a WHERE (group_by_col IN (70, 9)) OR (aggr_col > 2) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 6 55.55 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` in (70,9)) or (`test`.`a`.`aggr_col` > 2)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SELECT group_by_col, MAX(aggr_col) FROM a WHERE (group_by_col IN (70, 9)) OR (aggr_col < 9) GROUP BY group_by_col; group_by_col MAX(aggr_col) NULL 7 3 6 6 5 EXPLAIN SELECT group_by_col, MAX(aggr_col) FROM a WHERE (group_by_col IN (70, 9)) OR (aggr_col < 9) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 6 55.55 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` in (70,9)) or (`test`.`a`.`aggr_col` < 9)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 3: aggregate field used as equal expression. SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE (group_by_col IN (3, 9)) OR (aggr_col = 9) GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) NULL 9 9 3 2 6 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE (group_by_col IN (3, 9)) OR (aggr_col = 9) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 6 44.44 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` in (3,9)) or (`test`.`a`.`aggr_col` = 9)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 4: non aggregate field used as equal expression. SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE (group_by_col = 3) OR (aggr_col > 8) GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) NULL 9 9 3 2 6 6 10 10 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE (group_by_col = 3) OR (aggr_col > 8) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 6 55.55 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` = 3) or (`test`.`a`.`aggr_col` > 8)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 5: aggregate field used as non-zero expression. INSERT INTO a VALUES(0, 3); INSERT INTO a VALUES(0, 9); INSERT INTO a VALUES(8, 0); ANALYZE TABLE a; Table Op Msg_type Msg_text test.a analyze status OK SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE (group_by_col = 9) OR aggr_col GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) NULL 7 9 0 8 8 3 2 6 6 5 10 9 0 0 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE group_by_col = 9 OR aggr_col GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 9 91.11 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`group_by_col` = 9) or `test`.`a`.`aggr_col`) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 6: non aggregate field used as non-zero expression. SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE group_by_col OR (aggr_col < 9) GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) NULL 7 7 0 8 8 3 0 6 6 5 10 9 0 0 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE group_by_col OR (aggr_col < 9) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 9 92.59 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`group_by_col` or (`test`.`a`.`aggr_col` < 9)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 7: aggregate field used in equal exp without a CONST INSERT INTO a VALUES(1,1),(1,2),(2,1); SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col = group_by_col GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) 1 1 1 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col = group_by_col GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 12 100.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`group_by_col` = `test`.`a`.`aggr_col`) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 8: aggregate field used in a non-eq exp without a CONST SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col < group_by_col GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) 2 1 1 3 0 2 6 5 5 9 0 0 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col < group_by_col GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 12 33.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`aggr_col` < `test`.`a`.`group_by_col`) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 8 INSERT INTO a VALUES(0,1),(1,0),(0,0); SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col OR group_by_col GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) NULL 7 9 0 1 8 1 0 2 2 1 1 3 0 6 6 5 10 9 0 0 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col OR group_by_col GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 15 99.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`aggr_col` or `test`.`a`.`group_by_col`) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 9 SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col AND group_by_col GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) 1 1 2 2 1 1 3 2 6 6 5 10 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col AND group_by_col GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 15 81.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`aggr_col` and `test`.`a`.`group_by_col`) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 # Scenario 10: Added for completion. This fix does not have an impact. SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col<>0 AND group_by_col<>0 GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) 1 1 2 2 1 1 3 2 6 6 5 10 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE aggr_col<>0 AND group_by_col<>0 GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL range group_by_col_key group_by_col_key 10 NULL 7 100.00 Using where; Using index for group-by Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where ((`test`.`a`.`aggr_col` <> 0) and (`test`.`a`.`group_by_col` <> 0)) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 0 # Scenario 11: ITEM_FUNC as an argument of ITEM_FUNC SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE group_by_col OR (group_by_col < (aggr_col = 1)) GROUP BY group_by_col; group_by_col MIN(aggr_col) MAX(aggr_col) 0 1 1 1 0 2 2 1 1 3 0 6 6 5 10 9 0 0 EXPLAIN SELECT group_by_col, MIN(aggr_col), MAX(aggr_col) FROM a WHERE group_by_col OR (group_by_col < (aggr_col = 1)) GROUP BY group_by_col; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE a NULL index group_by_col_key group_by_col_key 10 NULL 15 93.33 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`a`.`group_by_col` AS `group_by_col`,min(`test`.`a`.`aggr_col`) AS `MIN(aggr_col)`,max(`test`.`a`.`aggr_col`) AS `MAX(aggr_col)` from `test`.`a` where (`test`.`a`.`group_by_col` or (`test`.`a`.`group_by_col` < (`test`.`a`.`aggr_col` = 1))) group by `test`.`a`.`group_by_col` SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; OK 1 SET optimizer_trace_max_mem_size=DEFAULT; SET optimizer_trace=DEFAULT; SET end_markers_in_json=DEFAULT; DROP TABLE a; # End of test for Bug#24423143
Close