diff options
author | unknown <svoj@june.mysql.com> | 2007-06-28 12:13:57 +0500 |
---|---|---|
committer | unknown <svoj@june.mysql.com> | 2007-06-28 12:13:57 +0500 |
commit | 8671dbd47394acfcbc34fb7b878b775e4e6ee358 (patch) | |
tree | baf28bfffcdebb0eb0e1252962477847aa851d9d | |
parent | b2de7a6ee6fa37805d9066ed92ca831499902d12 (diff) | |
parent | a38b1ae7c9e7b237acb4daf63edc4d2406478e57 (diff) | |
download | mariadb-git-8671dbd47394acfcbc34fb7b878b775e4e6ee358.tar.gz |
Merge mysql.com:/home/svoj/devel/mysql/BUG29250/mysql-5.0-engines
into mysql.com:/home/svoj/devel/mysql/BUG29250/mysql-5.1-engines
mysql-test/t/archive.test:
Auto merged
mysql-test/r/archive.result:
Use local.
storage/archive/ha_archive.cc:
Manual merge.
-rw-r--r-- | mysql-test/t/archive.test | 9 | ||||
-rw-r--r-- | storage/archive/ha_archive.cc | 20 |
2 files changed, 12 insertions, 17 deletions
diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test index b5ace75dbc4..23c591856a7 100644 --- a/mysql-test/t/archive.test +++ b/mysql-test/t/archive.test @@ -1550,3 +1550,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; diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index d1482de18ec..bdc59cbe795 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -1548,7 +1548,6 @@ bool ha_archive::is_crashed() const int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) { int rc= 0; - uchar *buf; const char *old_proc_info; ha_rows count= share->rows_recorded; DBUG_ENTER("ha_archive::check"); @@ -1557,27 +1556,14 @@ int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt) /* Flush any waiting data */ azflush(&(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= (uchar*) 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. */ init_archive_reader(); - - if (!rc) - read_data_header(&archive); - - if (!rc) - while (!(rc= get_row(&archive, buf))) - count--; - - my_free((char*)buf, MYF(0)); + read_data_header(&archive); + while (!(rc= get_row(&archive, table->record[0]))) + count--; thd_proc_info(thd, old_proc_info); |