Loading mysql-test/r/archive.result +7 −0 Original line number Diff line number Diff line Loading @@ -12364,3 +12364,10 @@ select * from t1; i 1 drop table t1; create table t1(a longblob) engine=archive; insert into t1 set a=''; insert into t1 set a='a'; check table t1 extended; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; mysql-test/t/archive.test +9 −0 Original line number Diff line number Diff line Loading @@ -1374,3 +1374,12 @@ insert into t1 values (1); repair table t1 use_frm; select * from t1; drop table t1; # # BUG#29207 - archive table reported as corrupt by check table # create table t1(a longblob) engine=archive; insert into t1 set a=''; insert into t1 set a='a'; check table t1 extended; drop table t1; sql/ha_archive.cc +3 −16 Original line number Diff line number Diff line Loading @@ -1205,7 +1205,6 @@ bool ha_archive::is_crashed() const int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) { int rc= 0; byte *buf; const char *old_proc_info=thd->proc_info; ha_rows count= share->rows_recorded; DBUG_ENTER("ha_archive::check"); Loading @@ -1214,26 +1213,14 @@ int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) /* Flush any waiting data */ gzflush(share->archive_write, Z_SYNC_FLUSH); /* First we create a buffer that we can use for reading rows, and can pass to get_row(). */ if (!(buf= (byte*) my_malloc(table->s->reclength, MYF(MY_WME)))) rc= HA_ERR_OUT_OF_MEM; /* Now we will rewind the archive file so that we are positioned at the start of the file. */ if (!rc) read_data_header(archive); if (!rc) while (!(rc= get_row(archive, buf))) while (!(rc= get_row(archive, table->record[0]))) count--; my_free((char*)buf, MYF(0)); thd->proc_info= old_proc_info; if ((rc && rc != HA_ERR_END_OF_FILE) || count) Loading Loading
mysql-test/r/archive.result +7 −0 Original line number Diff line number Diff line Loading @@ -12364,3 +12364,10 @@ select * from t1; i 1 drop table t1; create table t1(a longblob) engine=archive; insert into t1 set a=''; insert into t1 set a='a'; check table t1 extended; Table Op Msg_type Msg_text test.t1 check status OK drop table t1;
mysql-test/t/archive.test +9 −0 Original line number Diff line number Diff line Loading @@ -1374,3 +1374,12 @@ insert into t1 values (1); repair table t1 use_frm; select * from t1; drop table t1; # # BUG#29207 - archive table reported as corrupt by check table # create table t1(a longblob) engine=archive; insert into t1 set a=''; insert into t1 set a='a'; check table t1 extended; drop table t1;
sql/ha_archive.cc +3 −16 Original line number Diff line number Diff line Loading @@ -1205,7 +1205,6 @@ bool ha_archive::is_crashed() const int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) { int rc= 0; byte *buf; const char *old_proc_info=thd->proc_info; ha_rows count= share->rows_recorded; DBUG_ENTER("ha_archive::check"); Loading @@ -1214,26 +1213,14 @@ int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) /* Flush any waiting data */ gzflush(share->archive_write, Z_SYNC_FLUSH); /* First we create a buffer that we can use for reading rows, and can pass to get_row(). */ if (!(buf= (byte*) my_malloc(table->s->reclength, MYF(MY_WME)))) rc= HA_ERR_OUT_OF_MEM; /* Now we will rewind the archive file so that we are positioned at the start of the file. */ if (!rc) read_data_header(archive); if (!rc) while (!(rc= get_row(archive, buf))) while (!(rc= get_row(archive, table->record[0]))) count--; my_free((char*)buf, MYF(0)); thd->proc_info= old_proc_info; if ((rc && rc != HA_ERR_END_OF_FILE) || count) Loading