Commit 28750d03 authored by serg@serg.mysql.com's avatar serg@serg.mysql.com
Browse files

This wouldn't ever be pushed

parent a6ebe74e
Loading
Loading
Loading
Loading
+41 −24
Original line number Diff line number Diff line
@@ -3,30 +3,47 @@
#

drop table if exists t1;
create table t1 (a int, b char(10), key a(a));
create table t1 (a int, b char(10), key a(a), key b(a,b));
insert into t1 values
(14,"aaa"),(15,"bbb"),(16,"ccc"),
(17,"ddd"),(18,"eee"),(19,"fff"),
(14,"aaa"),(15,"bbb"),(16,"ccc"),(16,"xxx"),
(17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"),
(20,"ggg"),(21,"hhh"),(22,"iii");
handler t1 open;
handler t1 read a first;
handler t1 read a next;
handler t1 read a next;
handler t1 read a prev;
handler t1 read a last;
handler t1 read a prev;
handler t1 read a prev;

handler t1 read a first;
handler t1 read a prev;

handler t1 read a last;
handler t1 read a prev;
handler t1 read a next;
handler t1 read a next;

handler t1 read a=(15);

handler t1 close;
drop table if exists t1;
handler t1 open as t2;
handler t2 read a first;
handler t2 read a next;
handler t2 read a next;
handler t2 read a prev;
handler t2 read a last;
handler t2 read a prev;
handler t2 read a prev;

handler t2 read a first;
handler t2 read a prev;

handler t2 read a last;
handler t2 read a prev;
handler t2 read a next;
handler t2 read a next;

handler t2 read a=(15);
handler t2 read a=(16);

!$1070 handler t2 read a=(19,"fff");

handler t2 read b=(19,"fff");
handler t2 read b=(19,"yyy");
handler t2 read b=(19);

!$1109 handler t1 read a last;

handler t2 read a=(11);
handler t2 read a>=(11);

handler t2 read a=(18);
handler t2 read a>=(18);
handler t2 read a>(18);
handler t2 read a<=(18);
handler t2 read a<(18);

handler t2 close;
drop table if exists t1;
+6 −0
Original line number Diff line number Diff line
@@ -90,6 +90,12 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
        KEY *keyinfo=table->key_info+keyno;
	uint key_len=0, i;
	byte *key, *buf;
	if (key_expr->elements > keyinfo->key_parts)
	{
	   my_printf_error(ER_TOO_MANY_KEY_PARTS,ER(ER_TOO_MANY_KEY_PARTS),
	       MYF(0),keyinfo->key_parts);
           return -1;
	}
	for (i=0; i < key_expr->elements; i++)
	  key_len+=keyinfo->key_part[i].store_length;
	if (!(key=sql_calloc(ALIGN_SIZE(key_len))))