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/my_lock.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'mysys/my_lock.c') 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; -- cgit v1.2.1