Loading mysql-test/r/func_group.result +13 −0 Original line number Diff line number Diff line Loading @@ -940,3 +940,16 @@ EXPLAIN SELECT MAX(b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 DROP TABLE t1; CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin; Warnings: Warning 1246 Converting column 'b' from CHAR to TEXT INSERT INTO t1 VALUES (1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")), (1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff")); SELECT MAX(b) FROM t1; MAX(b) __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________zz EXPLAIN SELECT MAX(b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 4 DROP TABLE t1; mysql-test/t/func_group.test +9 −0 Original line number Diff line number Diff line Loading @@ -617,4 +617,13 @@ SELECT MAX(b) FROM t1; EXPLAIN SELECT MAX(b) FROM t1; DROP TABLE t1; CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin; INSERT INTO t1 VALUES (1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")), (1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff")); SELECT MAX(b) FROM t1; EXPLAIN SELECT MAX(b) FROM t1; DROP TABLE t1; # End of 4.1 tests sql/opt_sum.cc +4 −2 Original line number Diff line number Diff line Loading @@ -686,7 +686,9 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, return 0; /* Check whether the index component is partial */ if (part->length < table->field[part->fieldnr-1]->pack_length()) Field *part_field= table->field[part->fieldnr-1]; if ((part_field->flags & BLOB_FLAG) || part->length < part_field->key_length()) break; if (field->eq(part->field)) Loading Loading
mysql-test/r/func_group.result +13 −0 Original line number Diff line number Diff line Loading @@ -940,3 +940,16 @@ EXPLAIN SELECT MAX(b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 DROP TABLE t1; CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin; Warnings: Warning 1246 Converting column 'b' from CHAR to TEXT INSERT INTO t1 VALUES (1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")), (1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff")); SELECT MAX(b) FROM t1; MAX(b) __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________zz EXPLAIN SELECT MAX(b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 4 DROP TABLE t1;
mysql-test/t/func_group.test +9 −0 Original line number Diff line number Diff line Loading @@ -617,4 +617,13 @@ SELECT MAX(b) FROM t1; EXPLAIN SELECT MAX(b) FROM t1; DROP TABLE t1; CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin; INSERT INTO t1 VALUES (1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")), (1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff")); SELECT MAX(b) FROM t1; EXPLAIN SELECT MAX(b) FROM t1; DROP TABLE t1; # End of 4.1 tests
sql/opt_sum.cc +4 −2 Original line number Diff line number Diff line Loading @@ -686,7 +686,9 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, return 0; /* Check whether the index component is partial */ if (part->length < table->field[part->fieldnr-1]->pack_length()) Field *part_field= table->field[part->fieldnr-1]; if ((part_field->flags & BLOB_FLAG) || part->length < part_field->key_length()) break; if (field->eq(part->field)) Loading