Loading client/mysqldump.c +6 −5 Original line number Diff line number Diff line Loading @@ -2152,6 +2152,8 @@ static void dump_table(char *table, char *db) for (i = 0; i < mysql_num_fields(res); i++) { int is_blob; ulong length= lengths[i]; if (!(field = mysql_fetch_field(res))) { my_snprintf(query, QUERY_LENGTH, Loading @@ -2178,7 +2180,6 @@ static void dump_table(char *table, char *db) field->type == MYSQL_TYPE_TINY_BLOB)) ? 1 : 0; if (extended_insert) { ulong length = lengths[i]; if (i == 0) dynstr_set(&extended_row,"("); else Loading Loading @@ -2268,19 +2269,19 @@ static void dump_table(char *table, char *db) { print_xml_tag1(md_result_file, "\t\t", "field name=", field->name, ""); print_quoted_xml(md_result_file, row[i], lengths[i]); print_quoted_xml(md_result_file, row[i], length); fputs("</field>\n", md_result_file); } else if (opt_hex_blob && is_blob) else if (opt_hex_blob && is_blob && length) { /* sakaik got the idea to to provide blob's in hex notation. */ char *ptr= row[i], *end= ptr+ lengths[i]; char *ptr= row[i], *end= ptr + length; fputs("0x", md_result_file); for (; ptr < end ; ptr++) fprintf(md_result_file, "%02X", *((uchar *)ptr)); } else unescape(md_result_file, row[i], lengths[i]); unescape(md_result_file, row[i], length); } else { Loading myisam/mi_check.c +2 −1 Original line number Diff line number Diff line Loading @@ -402,7 +402,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) full_text_keys++; if (share->state.key_root[key] == HA_OFFSET_ERROR && (info->state->records == 0 || keyinfo->flag & HA_FULLTEXT)) continue; goto do_stat; if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key], DFLT_INIT_HITS,info->buff,0)) { Loading Loading @@ -498,6 +498,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) param->max_level); all_keydata+=param->keydata; all_totaldata+=param->totaldata; key_totlength+=length; do_stat: if (param->testflag & T_STATISTICS) update_key_parts(keyinfo, rec_per_key_part, param->unique_count, param->stats_method == MI_STATS_METHOD_IGNORE_NULLS? Loading mysql-test/r/analyze.result +9 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,15 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam; insert into t1 values ('hello'); analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status Table is already up to date drop table t1; CREATE TABLE t1 (a int); prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()"; execute stmt1; Loading mysql-test/r/bdb.result +14 −0 Original line number Diff line number Diff line Loading @@ -1891,3 +1891,17 @@ t1 CREATE TABLE `t1` ( ) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1 drop table t1; set storage_engine=MyISAM; create table t1 (a varchar(255) character set utf8, b varchar(255) character set utf8, c varchar(255) character set utf8, d varchar(255) character set utf8, key (a,b,c,d)) engine=bdb; drop table t1; create table t1 (a varchar(255) character set utf8, b varchar(255) character set utf8, c varchar(255) character set utf8, d varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=bdb; ERROR 42000: Specified key was too long; max key length is 3072 bytes End of 5.0 tests mysql-test/r/func_equal.result +9 −0 Original line number Diff line number Diff line Loading @@ -33,3 +33,12 @@ id value select * from t1 where id <=> value or value<=>id; id value drop table t1,t2; create table t1 (a bigint unsigned); insert into t1 values (4828532208463511553); select * from t1 where a = '4828532208463511553'; a 4828532208463511553 select * from t1 where a in ('4828532208463511553'); a 4828532208463511553 drop table t1; Loading
client/mysqldump.c +6 −5 Original line number Diff line number Diff line Loading @@ -2152,6 +2152,8 @@ static void dump_table(char *table, char *db) for (i = 0; i < mysql_num_fields(res); i++) { int is_blob; ulong length= lengths[i]; if (!(field = mysql_fetch_field(res))) { my_snprintf(query, QUERY_LENGTH, Loading @@ -2178,7 +2180,6 @@ static void dump_table(char *table, char *db) field->type == MYSQL_TYPE_TINY_BLOB)) ? 1 : 0; if (extended_insert) { ulong length = lengths[i]; if (i == 0) dynstr_set(&extended_row,"("); else Loading Loading @@ -2268,19 +2269,19 @@ static void dump_table(char *table, char *db) { print_xml_tag1(md_result_file, "\t\t", "field name=", field->name, ""); print_quoted_xml(md_result_file, row[i], lengths[i]); print_quoted_xml(md_result_file, row[i], length); fputs("</field>\n", md_result_file); } else if (opt_hex_blob && is_blob) else if (opt_hex_blob && is_blob && length) { /* sakaik got the idea to to provide blob's in hex notation. */ char *ptr= row[i], *end= ptr+ lengths[i]; char *ptr= row[i], *end= ptr + length; fputs("0x", md_result_file); for (; ptr < end ; ptr++) fprintf(md_result_file, "%02X", *((uchar *)ptr)); } else unescape(md_result_file, row[i], lengths[i]); unescape(md_result_file, row[i], length); } else { Loading
myisam/mi_check.c +2 −1 Original line number Diff line number Diff line Loading @@ -402,7 +402,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) full_text_keys++; if (share->state.key_root[key] == HA_OFFSET_ERROR && (info->state->records == 0 || keyinfo->flag & HA_FULLTEXT)) continue; goto do_stat; if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key], DFLT_INIT_HITS,info->buff,0)) { Loading Loading @@ -498,6 +498,7 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) param->max_level); all_keydata+=param->keydata; all_totaldata+=param->totaldata; key_totlength+=length; do_stat: if (param->testflag & T_STATISTICS) update_key_parts(keyinfo, rec_per_key_part, param->unique_count, param->stats_method == MI_STATS_METHOD_IGNORE_NULLS? Loading
mysql-test/r/analyze.result +9 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,15 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; create table t1 (a mediumtext, fulltext key key1(a)) charset utf8 collate utf8_general_ci engine myisam; insert into t1 values ('hello'); analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status OK analyze table t1; Table Op Msg_type Msg_text test.t1 analyze status Table is already up to date drop table t1; CREATE TABLE t1 (a int); prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()"; execute stmt1; Loading
mysql-test/r/bdb.result +14 −0 Original line number Diff line number Diff line Loading @@ -1891,3 +1891,17 @@ t1 CREATE TABLE `t1` ( ) ENGINE=BerkeleyDB DEFAULT CHARSET=latin1 drop table t1; set storage_engine=MyISAM; create table t1 (a varchar(255) character set utf8, b varchar(255) character set utf8, c varchar(255) character set utf8, d varchar(255) character set utf8, key (a,b,c,d)) engine=bdb; drop table t1; create table t1 (a varchar(255) character set utf8, b varchar(255) character set utf8, c varchar(255) character set utf8, d varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=bdb; ERROR 42000: Specified key was too long; max key length is 3072 bytes End of 5.0 tests
mysql-test/r/func_equal.result +9 −0 Original line number Diff line number Diff line Loading @@ -33,3 +33,12 @@ id value select * from t1 where id <=> value or value<=>id; id value drop table t1,t2; create table t1 (a bigint unsigned); insert into t1 values (4828532208463511553); select * from t1 where a = '4828532208463511553'; a 4828532208463511553 select * from t1 where a in ('4828532208463511553'); a 4828532208463511553 drop table t1;