summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/my_pthread.h12
-rw-r--r--innobase/srv/srv0start.c3
-rw-r--r--myisam/mi_check.c16
-rw-r--r--mysql-test/r/myisam.result3
-rw-r--r--mysql-test/t/myisam.test2
-rw-r--r--mysys/mf_iocache.c15
-rw-r--r--sql/mysqld.cc4
7 files changed, 40 insertions, 15 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h
index 038030540e8..a822d2db484 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -522,11 +522,13 @@ typedef struct _my_rw_lock_t {
#define rw_unlock(A) my_rw_unlock((A))
#define rwlock_destroy(A) my_rwlock_destroy((A))
-extern int my_rwlock_init( my_rw_lock_t *, void * );
-extern int my_rwlock_destroy( my_rw_lock_t * );
-extern int my_rw_rdlock( my_rw_lock_t * );
-extern int my_rw_wrlock( my_rw_lock_t * );
-extern int my_rw_unlock( my_rw_lock_t * );
+extern int my_rwlock_init(my_rw_lock_t *, void *);
+extern int my_rwlock_destroy(my_rw_lock_t *);
+extern int my_rw_rdlock(my_rw_lock_t *);
+extern int my_rw_wrlock(my_rw_lock_t *);
+extern int my_rw_unlock(my_rw_lock_t *);
+extern int my_rw_tryrdlock(my_rw_lock_t *);
+extern int my_rw_trywrlock(my_rw_lock_t *);
#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */
#define GETHOSTBYADDR_BUFF_SIZE 2048
diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c
index fa4f4bc9419..f5a0c62aaf9 100644
--- a/innobase/srv/srv0start.c
+++ b/innobase/srv/srv0start.c
@@ -1351,7 +1351,8 @@ innobase_shutdown_for_mysql(void)
srv_conc_n_threads);
}
+#ifdef NOT_WORKING_YET
ut_free_all_mem();
-
+#endif
return((int) DB_SUCCESS);
}
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index b325f350c2b..7fa30fcca83 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -2503,6 +2503,10 @@ static int sort_key_read(MI_SORT_PARAM *sort_param, void *key)
(info->s->rec_reflength+
_mi_make_key(info, sort_param->key, (uchar*) key,
sort_param->record, sort_param->filepos));
+#ifdef HAVE_purify
+ bzero(key+sort_param->real_key_length,
+ (sort_param->key_length-sort_param->real_key_length));
+#endif
DBUG_RETURN(sort_write_record(sort_param));
} /* sort_key_read */
@@ -2536,8 +2540,14 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
wptr=(FT_WORD*)(sort_param->wordptr);
}
- sort_param->real_key_length=info->s->rec_reflength+_ft_make_key(info,
- sort_param->key,key,wptr++,sort_param->filepos);
+ sort_param->real_key_length=(info->s->rec_reflength+
+ _ft_make_key(info, sort_param->key,
+ key, wptr++, sort_param->filepos));
+#ifdef HAVE_purify
+ if (sort_param->key_length > sort_param->real_key_length)
+ bzero(key+sort_param->real_key_length,
+ (sort_param->key_length-sort_param->real_key_length));
+#endif
if (!wptr->pos)
{
my_free((char*) sort_param->wordlist, MYF(0));
@@ -2546,10 +2556,10 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
else
sort_param->wordptr=(void*)wptr;
-
DBUG_RETURN(error);
} /* sort_ft_key_read */
+
/* Read next record from file using parameters in sort_info */
/* Return -1 if end of file, 0 if ok and > 0 if error */
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index ac9665ad906..8750ea94125 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -96,4 +96,7 @@ INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ce
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
drop table t1;
diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test
index 8a65ffcc72f..c607cb4d63e 100644
--- a/mysql-test/t/myisam.test
+++ b/mysql-test/t/myisam.test
@@ -91,5 +91,5 @@ CREATE TABLE `t1` (
INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test');
REPAIR TABLE t1;
+CHECK TABLE t1;
drop table t1;
-
diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c
index 54513ba73de..f5e381cf026 100644
--- a/mysys/mf_iocache.c
+++ b/mysys/mf_iocache.c
@@ -468,9 +468,11 @@ static int lock_io_cache(IO_CACHE *info)
very beginning, that is returns 1 and does not unlock the mutex.
*/
if (++(info->share->count))
- return pthread_mutex_unlock(&info->share->mutex);
- else
- return 1;
+ {
+ pthread_mutex_unlock(&info->share->mutex);
+ return 0;
+ }
+ return 1;
}
static void unlock_io_cache(IO_CACHE *info)
@@ -479,6 +481,7 @@ static void unlock_io_cache(IO_CACHE *info)
pthread_mutex_unlock(&info->share->mutex);
}
+
/*
Read from IO_CACHE when it is shared between several threads.
It works as follows: when a thread tries to read from a file
@@ -488,6 +491,7 @@ static void unlock_io_cache(IO_CACHE *info)
returns 1, the thread does actual IO and unlock_io_cache(),
which signals all the waiting threads that data is in the buffer.
*/
+
int _my_b_read_r(register IO_CACHE *info, byte *Buffer, uint Count)
{
my_off_t pos_in_file;
@@ -1068,8 +1072,9 @@ int _flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
if ((length=(uint) (info->write_pos - info->write_buffer)))
{
pos_in_file=info->pos_in_file;
- /* if we have append cache, we always open the file with
- O_APPEND which moves the pos to EOF automatically on every write
+ /*
+ If we have append cache, we always open the file with
+ O_APPEND which moves the pos to EOF automatically on every write
*/
if (!append_cache && info->seek_not_done)
{ /* File touched, do seek */
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 8c9854fdcb9..ce52bdc152e 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -229,7 +229,11 @@ SHOW_COMP_OPTION have_openssl=SHOW_OPTION_YES;
#else
SHOW_COMP_OPTION have_openssl=SHOW_OPTION_NO;
#endif
+#ifdef HAVE_BROKEN_REALPATH
+SHOW_COMP_OPTION have_symlink=SHOW_OPTION_NO;
+#else
SHOW_COMP_OPTION have_symlink=SHOW_OPTION_YES;
+#endif
#ifdef HAVE_QUERY_CACHE
SHOW_COMP_OPTION have_query_cache=SHOW_OPTION_YES;
#else