Commit 39c55409 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Merge work:/home/bk/mysql-4.0 into hundin.mysql.fi:/my/bk/mysql-4.0

parents 2007a034 2d66b2f5
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -50223,6 +50223,7 @@ each individual 4.0.x release.
@menu
* News-4.0.5::                  Changes in release 4.0.5
* News-4.0.4::                  Changes in release 4.0.4
* News-4.0.3::                  Changes in release 4.0.3 (26 Aug 2002: Beta)
* News-4.0.2::                  Changes in release 4.0.2 (01 Jul 2002)
@@ -50230,7 +50231,15 @@ each individual 4.0.x release.
* News-4.0.0::                  Changes in release 4.0.0 (Oct 2001: Alpha)
@end menu
@node News-4.0.4, News-4.0.3, News-4.0.x, News-4.0.x
@node News-4.0.5, News-4.0.4, News-4.0.x, News-4.0.x
@appendixsubsec Changes in release 4.0.5
@itemize
@item
Give error if one has more than 2 ^ 32 rows in a MyISAM MERGE file and one
has not compiled MySQL with @code{-DBIG_TABLES}.
@end itemize
@node News-4.0.4, News-4.0.3, News-4.0.5, News-4.0.x
@appendixsubsec Changes in release 4.0.4
@itemize @bullet
+22 −5
Original line number Diff line number Diff line
@@ -53,15 +53,23 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked)
  info(HA_STATUS_NO_LOCK | HA_STATUS_VARIABLE | HA_STATUS_CONST);
  if (!(test_if_locked & HA_OPEN_WAIT_IF_LOCKED))
    myrg_extra(file,HA_EXTRA_WAIT_LOCK,0);

  if (table->reclength != mean_rec_length && mean_rec_length)
  {
    DBUG_PRINT("error",("reclength: %d  mean_rec_length: %d",
			table->reclength, mean_rec_length));
    myrg_close(file);
    file=0;
    return my_errno=HA_ERR_WRONG_TABLE_DEF;
    goto err;
  }
#if !defined(BIG_TABLES) || SIZEOF_OFF_T == 4
  /* Merge table has more than 2G rows */
  if (table->crashed)
    goto err;
#endif
  return (0);
err:
  myrg_close(file);
  file=0;
  return (my_errno= HA_ERR_WRONG_TABLE_DEF);
}

int ha_myisammrg::close(void)
@@ -184,8 +192,17 @@ void ha_myisammrg::info(uint flag)
{
  MYMERGE_INFO info;
  (void) myrg_status(file,&info,flag);
  records = info.records;
  deleted = info.deleted;
  /*
    The following fails if one has not compiled MySQL with -DBIG_TABLES
    and one has more than 2^32 rows in the merge tables.
  */
  records = (ha_rows) info.records;
  deleted = (ha_rows) info.deleted;
#if !defined(BIG_TABLES) || SIZEOF_OFF_T == 4
  if ((info.records >= (ulonglong) 1 << 32) ||
      (info.deleted >= (ulonglong) 1 << 32))
    table->crashed=1;
#endif
  data_file_length=info.data_file_length;
  errkey  = info.errkey;
  table->keys_in_use= set_bits(key_map, table->keys);
+2 −2
Original line number Diff line number Diff line
@@ -192,8 +192,8 @@ class handler :public Sql_alloc
  byte *dupp_ref;			/* Pointer to dupp row */
  uint ref_length;			/* Length of ref (1-8) */
  uint block_size;			/* index block size */
  ulonglong records;			/* Records i datafilen */
  ulonglong deleted;			/* Deleted records */
  ha_rows records;			/* Records i datafilen */
  ha_rows deleted;			/* Deleted records */
  ulonglong data_file_length;		/* Length off data file */
  ulonglong max_data_file_length;	/* Length off data file */
  ulonglong index_file_length;