Commit f9af4156 authored by istruewing@synthia.local's avatar istruewing@synthia.local
Browse files

Merge synthia.local:/home/mydev/mysql-5.0-ateam

into  synthia.local:/home/mydev/mysql-5.0-axmrg
parents 018df177 6d4033e6
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;
+9 −0
Original line number Diff line number Diff line
@@ -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;
+3 −16
Original line number Diff line number Diff line
@@ -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");
@@ -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)