From 518a621adf75a55cad471f82d926842f3bcbf997 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 14 Oct 2000 03:16:35 +0300 Subject: Fix of LEFT JOIN optimizer bug, problem with key cache on Windows and a lot of portability issues. Docs/manual.texi: Changed FOREIGN KEY to FOREIGN KEY constraint client/mysqladmin.c: Don't flush MASTER or SLAVE on refresh configure.in: Fix for hpux 11.0 extra/perror.c: New error message include/my_pthread.h: Portability fix for windows myisam/mi_locking.c: Ensure that locking doesn't interfere with pread/pwrite on windows myisam/sort.c: checked with purecover mysys/mf_tempfile.c: Fix for windows mysys/my_lock.c: Ensure that locking doesn't interfere with pread/pwrite on windows mysys/my_winthread.c: Portability fix sql-bench/Results/ATIS-mysql-NT_4.0: New benchmark runs sql-bench/Results/RUN-mysql-NT_4.0: New benchmark runs sql-bench/Results/alter-table-mysql-NT_4.0: New benchmark runs sql-bench/Results/big-tables-mysql-NT_4.0: New benchmark runs sql-bench/Results/connect-mysql-NT_4.0: New benchmark runs sql-bench/Results/create-mysql-NT_4.0: New benchmark runs sql-bench/Results/insert-mysql-NT_4.0: New benchmark runs sql-bench/Results/select-mysql-NT_4.0: New benchmark runs sql-bench/Results/wisconsin-mysql-NT_4.0: New benchmark runs sql-bench/crash-me.sh: Fixed things for PostgreSQL sql-bench/limits/mysql-3.23.cfg: Update for new crash-me sql-bench/limits/mysql.cfg: Update for new crash-me sql-bench/print-limit-table: Fixed position for alter table rename sql-bench/test-insert.sh: Fix for PostgreSQL sql/field.cc: Fix for default values in CREATE ... SELECT sql/field.h: Fix for default values in CREATE ... SELECT sql/log.cc: Fixed typo sql/log_event.cc: Portability fix sql/mysqlbinlog.cc: Portability fix sql/mysqld.cc: Don't turn of concurrent insert with --skip-new or --safe sql/sql_base.cc: Portability fix sql/sql_class.cc: Portability fix sql/sql_class.h: Portability fix sql/sql_parse.cc: Fix for --log-slow-queries sql/sql_repl.cc: Portability fixes sql/sql_select.cc: Fixed optimizer bug for LEFT JOIN sql/sql_select.h: Fixed optimizer bug for LEFT JOIN sql/sql_table.cc: Fix for default values in CREATE ... SELECT sql/sql_yacc.yy: Added optional AS to: CREATE TABLE foo [ AS ] SELECT ... --- mysys/mf_tempfile.c | 2 +- mysys/my_lock.c | 15 +++++++++++---- mysys/my_winthread.c | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'mysys') diff --git a/mysys/mf_tempfile.c b/mysys/mf_tempfile.c index 44826ad57c2..e78cb3ca2ae 100644 --- a/mysys/mf_tempfile.c +++ b/mysys/mf_tempfile.c @@ -43,7 +43,7 @@ File create_temp_file(char *to, const char *dir, const char *prefix, DBUG_ENTER("open_temp_file"); #if defined(_MSC_VER) { - char *end,*res,**old_env,*temp_env[1]; + char temp[FN_REFLEN],*end,*res,**old_env,*temp_env[1]; old_env=environ; if (dir) { diff --git a/mysys/my_lock.c b/mysys/my_lock.c index 4f1506f20cf..ed637648353 100644 --- a/mysys/my_lock.c +++ b/mysys/my_lock.c @@ -109,10 +109,17 @@ int my_lock(File fd, int locktype, my_off_t start, my_off_t length, printf("Error: DosSetFileLocks() == %d\n",rc); } #elif defined(HAVE_LOCKING) - if (MyFlags & MY_SEEK_NOT_DONE) - VOID(my_seek(fd,start,MY_SEEK_SET,MYF(MyFlags & ~MY_SEEK_NOT_DONE))); - if (!locking(fd,locktype,(ulong) length) || errno == EINVAL) - DBUG_RETURN(0); + /* Windows */ + { + my_bool error; + pthread_mutex_lock(&my_file_info[fd].mutex); + if (MyFlags & MY_SEEK_NOT_DONE) + VOID(my_seek(fd,start,MY_SEEK_SET,MYF(MyFlags & ~MY_SEEK_NOT_DONE))); + error= locking(fd,locktype,(ulong) length) && errno != EINVAL; + pthread_mutex_unlock(&my_file_info[fd].mutex); + if (!error) + DBUG_RETURN(0); + } #else #if defined(HAVE_FCNTL) lock.l_type= (short) locktype; diff --git a/mysys/my_winthread.c b/mysys/my_winthread.c index 6a99fa0bb02..2fe56a13baf 100644 --- a/mysys/my_winthread.c +++ b/mysys/my_winthread.c @@ -61,7 +61,7 @@ static pthread_handler_decl(pthread_start,param) win_pthread_self=((struct pthread_map *) param)->pthreadself; pthread_mutex_unlock(&THR_LOCK_thread); free((char*) param); /* Free param from create */ - pthread_exit((*func)(func_param)); + pthread_exit((void*) (*func)(func_param)); return 0; /* Safety */ } @@ -103,7 +103,7 @@ int pthread_create(pthread_t *thread_id, pthread_attr_t *attr, } -void pthread_exit(unsigned A) +void pthread_exit(void *a) { _endthread(); } -- cgit v1.2.1