diff options
author | unknown <monty@donna.mysql.fi> | 2001-05-17 00:46:50 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.fi> | 2001-05-17 00:46:50 +0300 |
commit | ebe9b6071a73d6953855fd0b2b5144b5b93194fb (patch) | |
tree | bfa83a61c2689e0f64e7be02d414bcf366c068a1 /mysys | |
parent | c23dbe674d9cba45aa3ce0b87e50f83f3d2e9d52 (diff) | |
download | mariadb-git-ebe9b6071a73d6953855fd0b2b5144b5b93194fb.tar.gz |
Fixed bug when using MERGE on files > 4G
Fixed bug in SELECT db1.table.* FROM db1.table,db2.table
Fixed bug in INSERT DELAYED when doing shutdown and a table was locked
Changed that tmp_table_size =4G-1 means unlimited.
Docs/manual.texi:
Added new section about crashed MyISAM tables.
Cleaned up subsections for InnoDB
client/mysql.cc:
Cleanup
myisam/mi_rkey.c:
Cleanup
myisam/mi_search.c:
Fixed wrong casts in debug messages
myisammrg/myrg_rrnd.c:
Fixed bug when using files > 4G
mysys/getvar.c:
Changed to use longlong to support arguments up to 4G
mysys/thr_lock.c:
Fix for delay insert
sql/mysqld.cc:
Increased default size for temporary tables
sql/sql_base.cc:
Fixed bug in SELECT db1.table.* FROM db1.table,db2.table
sql/sql_insert.cc:
Fixed bug in INSERT DELAYED when doing shutdown and a table was locked
sql/sql_select.cc:
Changed that tmp_table_size =4G-1 means unlimited.
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/getvar.c | 18 | ||||
-rw-r--r-- | mysys/thr_lock.c | 2 |
2 files changed, 9 insertions, 11 deletions
diff --git a/mysys/getvar.c b/mysys/getvar.c index 21cac7f0d61..703ccc4ddfa 100644 --- a/mysys/getvar.c +++ b/mysys/getvar.c @@ -56,7 +56,7 @@ my_bool set_changeable_var(my_string str,CHANGEABLE_VAR *vars) CHANGEABLE_VAR *var,*found; my_string var_end; const char *name; - long num; + longlong num; /* Skip end space from variable */ for (var_end=end ; end > str && isspace(var_end[-1]) ; var_end--) ; @@ -87,7 +87,7 @@ my_bool set_changeable_var(my_string str,CHANGEABLE_VAR *vars) DBUG_RETURN(1); } - num=(long) atol(end); endchar=strend(end)[-1]; + num=atoll(end); endchar=strend(end)[-1]; if (endchar == 'k' || endchar == 'K') num*=1024; else if (endchar == 'm' || endchar == 'M') @@ -99,14 +99,12 @@ my_bool set_changeable_var(my_string str,CHANGEABLE_VAR *vars) fprintf(stderr,"Unknown prefix used for variable value '%s'\n",str); DBUG_RETURN(1); } - if (num < (long) found->min_value) - num=(long) found->min_value; - else if ((unsigned long) num > - (unsigned long) found->max_value) - num=(long) found->max_value; - *found->varptr=(long) ((ulong) (num-found->sub_size) / - (ulong) found->block_size); - (*found->varptr)*= (ulong) found->block_size; + if (num < (longlong) found->min_value) + num=(longlong) found->min_value; + else if (num > (longlong) (ulong) found->max_value) + num=(longlong) (ulong) found->max_value; + num=((num- (longlong) found->sub_size) / (ulonglong) found->block_size); + (*found->varptr)= (long) (num*(ulonglong) found->block_size); DBUG_RETURN(0); } } diff --git a/mysys/thr_lock.c b/mysys/thr_lock.c index ed21d466b35..74548b7fa12 100644 --- a/mysys/thr_lock.c +++ b/mysys/thr_lock.c @@ -370,7 +370,7 @@ static my_bool wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data, do { pthread_cond_wait(cond,&data->lock->mutex); - } while (data->cond == cond && !thread_var->abort); + } while (data->cond == cond && (!thread_var->abort || in_wait_list)); if (data->cond || data->type == TL_UNLOCK) { |