Fix that REPAIR/ALTER TABLE use myisam_tempdir

include/myisam.h:
  Don't assume too big tempoary disks
myisam/mi_check.c:
  Don't assume too big tempoary disks
myisam/mi_static.c:
  Don't assume too big tempoary disks
myisam/myisamdef.h:
  Fix type
sql/ha_myisam.cc:
  Set myisamchk to use MySQL temporary disk space
sql/slave.cc:
  Fix parameters
sql/sql_lex.h:
  Added backup_dir
This commit is contained in:
unknown 2000-09-16 19:06:21 +03:00
commit 5a4aa474d8
7 changed files with 22 additions and 14 deletions

View file

@ -2981,14 +2981,15 @@ ha_checksum mi_byte_checksum(const byte *buf, uint length)
static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows)
{
return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
((ulonglong) rows * key->maxlength > MAX_FILE_SIZE ||
((ulonglong) rows * key->maxlength >
(ulonglong) myisam_max_temp_length ||
(ulonglong) rows * (key->maxlength - key->minlength) / 2 >
MI_MAX_TEMP_LENGTH ||
myisam_max_extra_temp_length ||
(rows == 0 && (key->maxlength / key->minlength) > 2)));
}
void mi_dectivate_non_unique_index(MI_INFO *info, ha_rows rows)
void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows)
{
MYISAM_SHARE *share=info->s;
uint i;

View file

@ -38,6 +38,9 @@ my_bool myisam_concurrent_insert=1;
#else
my_bool myisam_concurrent_insert=0;
#endif
my_off_t myisam_max_extra_temp_length= MI_MAX_TEMP_LENGTH;
my_off_t myisam_max_temp_length= MAX_FILE_SIZE;
/* read_vec[] is used for converting between P_READ_KEY.. and SEARCH_ */
/* Position is , == , >= , <= , > , < */

View file

@ -618,7 +618,7 @@ void mi_get_status(void* param);
void mi_update_status(void* param);
void mi_copy_status(void* to,void *from);
my_bool mi_check_status(void* param);
void mi_dectivate_non_unique_index(MI_INFO *info, ha_rows rows);
void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows);
int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
enum ha_rkey_function search_flag, bool raw_key);