Commit 5eead315 authored by unknown's avatar unknown
Browse files

Post-review corrections of the fix for bug #18206.


mysql-test/r/func_group.result:
  Added another test case for bug #18206.
mysql-test/t/func_group.test:
  Added another test case for bug #18206.
parent 61684e2e
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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;
+9 −0
Original line number Diff line number Diff line
@@ -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
+4 −2
Original line number Diff line number Diff line
@@ -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))