summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <svoj@june.mysql.com>2007-06-28 12:13:57 +0500
committerunknown <svoj@june.mysql.com>2007-06-28 12:13:57 +0500
commit8671dbd47394acfcbc34fb7b878b775e4e6ee358 (patch)
treebaf28bfffcdebb0eb0e1252962477847aa851d9d
parentb2de7a6ee6fa37805d9066ed92ca831499902d12 (diff)
parenta38b1ae7c9e7b237acb4daf63edc4d2406478e57 (diff)
downloadmariadb-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.test9
-rw-r--r--storage/archive/ha_archive.cc20
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);