Commit d432f399 authored by unknown's avatar unknown

Revert change to use ha_rows for number of rows as other code depend of this


Docs/manual.texi:
  Changelog
parent 948c76cc
...@@ -50223,6 +50223,7 @@ each individual 4.0.x release. ...@@ -50223,6 +50223,7 @@ each individual 4.0.x release.
@menu @menu
* News-4.0.5:: Changes in release 4.0.5
* News-4.0.4:: Changes in release 4.0.4 * 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.3:: Changes in release 4.0.3 (26 Aug 2002: Beta)
* News-4.0.2:: Changes in release 4.0.2 (01 Jul 2002) * News-4.0.2:: Changes in release 4.0.2 (01 Jul 2002)
...@@ -50230,7 +50231,15 @@ each individual 4.0.x release. ...@@ -50230,7 +50231,15 @@ each individual 4.0.x release.
* News-4.0.0:: Changes in release 4.0.0 (Oct 2001: Alpha) * News-4.0.0:: Changes in release 4.0.0 (Oct 2001: Alpha)
@end menu @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 @appendixsubsec Changes in release 4.0.4
@itemize @bullet @itemize @bullet
...@@ -53,15 +53,23 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked) ...@@ -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); info(HA_STATUS_NO_LOCK | HA_STATUS_VARIABLE | HA_STATUS_CONST);
if (!(test_if_locked & HA_OPEN_WAIT_IF_LOCKED)) if (!(test_if_locked & HA_OPEN_WAIT_IF_LOCKED))
myrg_extra(file,HA_EXTRA_WAIT_LOCK,0); myrg_extra(file,HA_EXTRA_WAIT_LOCK,0);
if (table->reclength != mean_rec_length && mean_rec_length) if (table->reclength != mean_rec_length && mean_rec_length)
{ {
DBUG_PRINT("error",("reclength: %d mean_rec_length: %d", DBUG_PRINT("error",("reclength: %d mean_rec_length: %d",
table->reclength, mean_rec_length)); table->reclength, mean_rec_length));
myrg_close(file); goto err;
file=0;
return my_errno=HA_ERR_WRONG_TABLE_DEF;
} }
#if !defined(BIG_TABLES) || SIZEOF_OFF_T == 4
/* Merge table has more than 2G rows */
if (table->crashed)
goto err;
#endif
return (0); return (0);
err:
myrg_close(file);
file=0;
return (my_errno= HA_ERR_WRONG_TABLE_DEF);
} }
int ha_myisammrg::close(void) int ha_myisammrg::close(void)
...@@ -184,8 +192,17 @@ void ha_myisammrg::info(uint flag) ...@@ -184,8 +192,17 @@ void ha_myisammrg::info(uint flag)
{ {
MYMERGE_INFO info; MYMERGE_INFO info;
(void) myrg_status(file,&info,flag); (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; data_file_length=info.data_file_length;
errkey = info.errkey; errkey = info.errkey;
table->keys_in_use= set_bits(key_map, table->keys); table->keys_in_use= set_bits(key_map, table->keys);
......
...@@ -192,8 +192,8 @@ class handler :public Sql_alloc ...@@ -192,8 +192,8 @@ class handler :public Sql_alloc
byte *dupp_ref; /* Pointer to dupp row */ byte *dupp_ref; /* Pointer to dupp row */
uint ref_length; /* Length of ref (1-8) */ uint ref_length; /* Length of ref (1-8) */
uint block_size; /* index block size */ uint block_size; /* index block size */
ulonglong records; /* Records i datafilen */ ha_rows records; /* Records i datafilen */
ulonglong deleted; /* Deleted records */ ha_rows deleted; /* Deleted records */
ulonglong data_file_length; /* Length off data file */ ulonglong data_file_length; /* Length off data file */
ulonglong max_data_file_length; /* Length off data file */ ulonglong max_data_file_length; /* Length off data file */
ulonglong index_file_length; ulonglong index_file_length;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment