make myisam usable without threads (and even w/o pthread_t)

parent c7f224ca
...@@ -366,14 +366,18 @@ typedef struct st_sort_info ...@@ -366,14 +366,18 @@ typedef struct st_sort_info
SORT_KEY_BLOCKS *key_block,*key_block_end; SORT_KEY_BLOCKS *key_block,*key_block_end;
/* sync things*/ /* sync things*/
uint got_error, threads_running; uint got_error, threads_running;
#ifdef THREAD
pthread_mutex_t mutex; pthread_mutex_t mutex;
pthread_cond_t cond; pthread_cond_t cond;
#endif
} SORT_INFO; } SORT_INFO;
typedef struct st_mi_sort_param typedef struct st_mi_sort_param
{ {
#ifdef THREAD
pthread_t thr; pthread_t thr;
#endif
IO_CACHE read_cache, tempfile, tempfile_for_exceptions; IO_CACHE read_cache, tempfile, tempfile_for_exceptions;
DYNAMIC_ARRAY buffpek; DYNAMIC_ARRAY buffpek;
ulonglong unique[MI_MAX_KEY_SEG+1]; ulonglong unique[MI_MAX_KEY_SEG+1];
......
...@@ -2109,7 +2109,7 @@ err: ...@@ -2109,7 +2109,7 @@ err:
Threaded repair of table using sorting Threaded repair of table using sorting
SYNOPSIS SYNOPSIS
mi_repair_by_sort_r() mi_repair_parallel()
param Repair parameters param Repair parameters
info MyISAM handler to repair info MyISAM handler to repair
name Name of table (for warnings) name Name of table (for warnings)
...@@ -2128,6 +2128,9 @@ err: ...@@ -2128,6 +2128,9 @@ err:
int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
const char * name, int rep_quick) const char * name, int rep_quick)
{ {
#ifndef THREAD
return mi_repair_by_sort(param, info, name, rep_quick);
#else
int got_error; int got_error;
uint i,key, total_key_length, istep; uint i,key, total_key_length, istep;
ulong rec_length; ulong rec_length;
...@@ -2489,6 +2492,7 @@ err: ...@@ -2489,6 +2492,7 @@ err:
share->pack.header_length=0; share->pack.header_length=0;
} }
DBUG_RETURN(got_error); DBUG_RETURN(got_error);
#endif /* THREAD */
} }
/* Read next record and return next key */ /* Read next record and return next key */
......
...@@ -275,6 +275,7 @@ static ha_rows NEAR_F find_all_keys(MI_SORT_PARAM *info, uint keys, ...@@ -275,6 +275,7 @@ static ha_rows NEAR_F find_all_keys(MI_SORT_PARAM *info, uint keys,
} /* find_all_keys */ } /* find_all_keys */
#ifdef THREAD
/* Search after all keys and place them in a temp. file */ /* Search after all keys and place them in a temp. file */
pthread_handler_decl(thr_find_all_keys,arg) pthread_handler_decl(thr_find_all_keys,arg)
...@@ -284,7 +285,7 @@ pthread_handler_decl(thr_find_all_keys,arg) ...@@ -284,7 +285,7 @@ pthread_handler_decl(thr_find_all_keys,arg)
uint memavl,old_memavl,keys,sort_length; uint memavl,old_memavl,keys,sort_length;
uint idx, maxbuffer; uint idx, maxbuffer;
uchar **sort_keys=0; uchar **sort_keys=0;
error=1; error=1;
if (my_thread_init()) if (my_thread_init())
...@@ -542,6 +543,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param) ...@@ -542,6 +543,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
my_free((gptr) mergebuf,MYF(MY_ALLOW_ZERO_PTR)); my_free((gptr) mergebuf,MYF(MY_ALLOW_ZERO_PTR));
return got_error; return got_error;
} }
#endif /* THREAD */
/* Write all keys in memory to file for later merge */ /* Write all keys in memory to file for later merge */
......
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