Loading heap/hp_create.c +2 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, if (!my_binary_compare(keyinfo->seg[j].charset)) keyinfo->flag|= HA_END_SPACE_KEY; keyinfo->flag|= HA_VAR_LENGTH_KEY; length+= 2; /* Save number of bytes used to store length */ keyinfo->seg[j].bit_start= 1; break; Loading @@ -95,6 +96,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, if (!my_binary_compare(keyinfo->seg[j].charset)) keyinfo->flag|= HA_END_SPACE_KEY; keyinfo->flag|= HA_VAR_LENGTH_KEY; length+= 2; /* Save number of bytes used to store length */ keyinfo->seg[j].bit_start= 2; /* Loading mysql-test/r/heap.result +13 −0 Original line number Diff line number Diff line Loading @@ -718,3 +718,16 @@ Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length I t1 MEMORY 10 Fixed 0 11 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL t2 MEMORY 10 Fixed 0 12 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL drop table t1, t2; CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256), KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY; INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256)); SELECT COUNT(*) FROM t1 WHERE a='a'; COUNT(*) 2 SELECT COUNT(*) FROM t1 WHERE b='aa'; COUNT(*) 2 SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); COUNT(*) 2 DROP TABLE t1; mysql-test/t/heap.test +12 −0 Original line number Diff line number Diff line Loading @@ -458,4 +458,16 @@ create table t2 (c varchar(10)) engine=memory; show table status like 't_'; drop table t1, t2; # # BUG#18233 - Memory tables INDEX USING HASH (a,b) returns 1 row on # SELECT WHERE a= AND b= # CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256), KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY; INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256)); SELECT COUNT(*) FROM t1 WHERE a='a'; SELECT COUNT(*) FROM t1 WHERE b='aa'; SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); DROP TABLE t1; # End of 5.0 tests Loading
heap/hp_create.c +2 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, if (!my_binary_compare(keyinfo->seg[j].charset)) keyinfo->flag|= HA_END_SPACE_KEY; keyinfo->flag|= HA_VAR_LENGTH_KEY; length+= 2; /* Save number of bytes used to store length */ keyinfo->seg[j].bit_start= 1; break; Loading @@ -95,6 +96,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, if (!my_binary_compare(keyinfo->seg[j].charset)) keyinfo->flag|= HA_END_SPACE_KEY; keyinfo->flag|= HA_VAR_LENGTH_KEY; length+= 2; /* Save number of bytes used to store length */ keyinfo->seg[j].bit_start= 2; /* Loading
mysql-test/r/heap.result +13 −0 Original line number Diff line number Diff line Loading @@ -718,3 +718,16 @@ Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length I t1 MEMORY 10 Fixed 0 11 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL t2 MEMORY 10 Fixed 0 12 0 # 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL drop table t1, t2; CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256), KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY; INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256)); SELECT COUNT(*) FROM t1 WHERE a='a'; COUNT(*) 2 SELECT COUNT(*) FROM t1 WHERE b='aa'; COUNT(*) 2 SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); COUNT(*) 2 DROP TABLE t1;
mysql-test/t/heap.test +12 −0 Original line number Diff line number Diff line Loading @@ -458,4 +458,16 @@ create table t2 (c varchar(10)) engine=memory; show table status like 't_'; drop table t1, t2; # # BUG#18233 - Memory tables INDEX USING HASH (a,b) returns 1 row on # SELECT WHERE a= AND b= # CREATE TABLE t1(a VARCHAR(1), b VARCHAR(2), c VARCHAR(256), KEY(a), KEY(b), KEY(c)) ENGINE=MEMORY; INSERT INTO t1 VALUES('a','aa',REPEAT('a', 256)),('a','aa',REPEAT('a',256)); SELECT COUNT(*) FROM t1 WHERE a='a'; SELECT COUNT(*) FROM t1 WHERE b='aa'; SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256); DROP TABLE t1; # End of 5.0 tests