summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authormonty@donna.mysql.com <>2000-09-16 19:06:21 +0300
committermonty@donna.mysql.com <>2000-09-16 19:06:21 +0300
commitf2f515e5c2733dfe95471640ff740d0f936579b9 (patch)
tree38f12ed194dbac086831cd3d00180599d1df8444 /myisam
parent30bcd690f20bc187929eedae502ee9a1487ef6b5 (diff)
downloadmariadb-git-f2f515e5c2733dfe95471640ff740d0f936579b9.tar.gz
Fix that REPAIR/ALTER TABLE use myisam_tempdir
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_check.c7
-rw-r--r--myisam/mi_static.c3
-rw-r--r--myisam/myisamdef.h2
3 files changed, 8 insertions, 4 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index ab3d986980c..c556c816590 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -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;
diff --git a/myisam/mi_static.c b/myisam/mi_static.c
index 035526f525d..f790f90ca78 100644
--- a/myisam/mi_static.c
+++ b/myisam/mi_static.c
@@ -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 , == , >= , <= , > , < */
diff --git a/myisam/myisamdef.h b/myisam/myisamdef.h
index cd1eaa76ce1..92d48e56786 100644
--- a/myisam/myisamdef.h
+++ b/myisam/myisamdef.h
@@ -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);