Loading mysql-test/r/myisam.result +5 −0 Original line number Diff line number Diff line Loading @@ -1619,6 +1619,11 @@ a 2 3 DROP TABLE t1; CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=5100100100; SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment t1 MyISAM 10 Dynamic X X X 72057594037927935 X X X X X X latin1_swedish_ci X max_rows=4294967295 avg_row_length=70100 DROP TABLE t1; End of 4.1 tests create table t1 (c1 int) engine=myisam pack_keys=0; create table t2 (c1 int) engine=myisam pack_keys=1; Loading mysql-test/t/myisam.test +8 −0 Original line number Diff line number Diff line Loading @@ -995,6 +995,14 @@ INSERT INTO t1 VALUES(1),(2); UPDATE t1,t1 AS t2 SET t1.a=t1.a+2 WHERE t1.a=t2.a-1; SELECT * FROM t1 ORDER BY a; DROP TABLE t1; # # Bug#24607 - MyISAM pointer size determined incorrectly # CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=5100100100; --replace_column 5 X 6 X 7 X 9 X 10 X 11 X 12 X 13 X 14 X 16 X SHOW TABLE STATUS LIKE 't1'; DROP TABLE t1; --echo End of 4.1 tests # Loading storage/myisam/mi_create.c +7 −6 Original line number Diff line number Diff line Loading @@ -850,18 +850,19 @@ uint mi_get_pointer_length(ulonglong file_length, uint def) if (file_length) /* If not default */ { #ifdef NOT_YET_READY_FOR_8_BYTE_POINTERS if (file_length >= (longlong) 1 << 56) if (file_length >= ULL(1) << 56) def=8; else #endif if (file_length >= (longlong) 1 << 48) if (file_length >= ULL(1) << 48) def=7; if (file_length >= (longlong) 1 << 40) else if (file_length >= ULL(1) << 40) def=6; else if (file_length >= (longlong) 1 << 32) else if (file_length >= ULL(1) << 32) def=5; else if (file_length >= (1L << 24)) else if (file_length >= ULL(1) << 24) def=4; else if (file_length >= (1L << 16)) else if (file_length >= ULL(1) << 16) def=3; else def=2; Loading Loading
mysql-test/r/myisam.result +5 −0 Original line number Diff line number Diff line Loading @@ -1619,6 +1619,11 @@ a 2 3 DROP TABLE t1; CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=5100100100; SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment t1 MyISAM 10 Dynamic X X X 72057594037927935 X X X X X X latin1_swedish_ci X max_rows=4294967295 avg_row_length=70100 DROP TABLE t1; End of 4.1 tests create table t1 (c1 int) engine=myisam pack_keys=0; create table t2 (c1 int) engine=myisam pack_keys=1; Loading
mysql-test/t/myisam.test +8 −0 Original line number Diff line number Diff line Loading @@ -995,6 +995,14 @@ INSERT INTO t1 VALUES(1),(2); UPDATE t1,t1 AS t2 SET t1.a=t1.a+2 WHERE t1.a=t2.a-1; SELECT * FROM t1 ORDER BY a; DROP TABLE t1; # # Bug#24607 - MyISAM pointer size determined incorrectly # CREATE TABLE t1 (c1 TEXT) AVG_ROW_LENGTH=70100 MAX_ROWS=5100100100; --replace_column 5 X 6 X 7 X 9 X 10 X 11 X 12 X 13 X 14 X 16 X SHOW TABLE STATUS LIKE 't1'; DROP TABLE t1; --echo End of 4.1 tests # Loading
storage/myisam/mi_create.c +7 −6 Original line number Diff line number Diff line Loading @@ -850,18 +850,19 @@ uint mi_get_pointer_length(ulonglong file_length, uint def) if (file_length) /* If not default */ { #ifdef NOT_YET_READY_FOR_8_BYTE_POINTERS if (file_length >= (longlong) 1 << 56) if (file_length >= ULL(1) << 56) def=8; else #endif if (file_length >= (longlong) 1 << 48) if (file_length >= ULL(1) << 48) def=7; if (file_length >= (longlong) 1 << 40) else if (file_length >= ULL(1) << 40) def=6; else if (file_length >= (longlong) 1 << 32) else if (file_length >= ULL(1) << 32) def=5; else if (file_length >= (1L << 24)) else if (file_length >= ULL(1) << 24) def=4; else if (file_length >= (1L << 16)) else if (file_length >= ULL(1) << 16) def=3; else def=2; Loading