Loading innobase/os/os0file.c +15 −9 Original line number Diff line number Diff line Loading @@ -486,7 +486,7 @@ os_io_init_simple(void) } } #ifndef UNIV_HOTBACKUP #if !defined(UNIV_HOTBACKUP) && !defined(__NETWARE__) /************************************************************************* Creates a temporary file. This function is defined in ha_innodb.cc. */ Loading @@ -494,7 +494,7 @@ int innobase_mysql_tmpfile(void); /*========================*/ /* out: temporary file descriptor, or < 0 on error */ #endif /* !UNIV_HOTBACKUP */ #endif /* !UNIV_HOTBACKUP && !__NETWARE__ */ /*************************************************************************** Creates a temporary file. */ Loading @@ -504,6 +504,9 @@ os_file_create_tmpfile(void) /*========================*/ /* out: temporary file handle, or NULL on error */ { #ifdef __NETWARE__ FILE* file = tmpfile(); #else /* __NETWARE__ */ FILE* file = NULL; int fd = -1; # ifdef UNIV_HOTBACKUP Loading Loading @@ -541,15 +544,18 @@ os_file_create_tmpfile(void) if (fd >= 0) { file = fdopen(fd, "w+b"); } #endif /* __NETWARE__ */ if (!file) { ut_print_timestamp(stderr); fprintf(stderr, " InnoDB: Error: unable to create temporary file;" " errno: %d\n", errno); #ifndef __NETWARE__ if (fd >= 0) { close(fd); } #endif /* !__NETWARE__ */ } return(file); Loading sql/ha_innodb.cc +7 −2 Original line number Diff line number Diff line Loading @@ -5265,7 +5265,9 @@ ha_innobase::store_lock( if ((lock_type == TL_READ && thd->in_lock_tables) || (lock_type == TL_READ_HIGH_PRIORITY && thd->in_lock_tables) || lock_type == TL_READ_WITH_SHARED_LOCKS || lock_type == TL_READ_NO_INSERT) { lock_type == TL_READ_NO_INSERT || thd->lex->sql_command != SQLCOM_SELECT) { /* The OR cases above are in this order: 1) MySQL is doing LOCK TABLES ... READ LOCAL, or 2) (we do not know when TL_READ_HIGH_PRIORITY is used), or Loading @@ -5273,7 +5275,10 @@ ha_innobase::store_lock( 4) we are doing a complex SQL statement like INSERT INTO ... SELECT ... and the logical logging (MySQL binlog) requires the use of a locking read, or MySQL is doing LOCK TABLES ... READ. */ MySQL is doing LOCK TABLES ... READ. 5) we let InnoDB do locking reads for all SQL statements that are not simple SELECTs; note that select_lock_type in this case may get strengthened in ::external_lock() to LOCK_X. */ prebuilt->select_lock_type = LOCK_S; prebuilt->stored_select_lock_type = LOCK_S; Loading Loading
innobase/os/os0file.c +15 −9 Original line number Diff line number Diff line Loading @@ -486,7 +486,7 @@ os_io_init_simple(void) } } #ifndef UNIV_HOTBACKUP #if !defined(UNIV_HOTBACKUP) && !defined(__NETWARE__) /************************************************************************* Creates a temporary file. This function is defined in ha_innodb.cc. */ Loading @@ -494,7 +494,7 @@ int innobase_mysql_tmpfile(void); /*========================*/ /* out: temporary file descriptor, or < 0 on error */ #endif /* !UNIV_HOTBACKUP */ #endif /* !UNIV_HOTBACKUP && !__NETWARE__ */ /*************************************************************************** Creates a temporary file. */ Loading @@ -504,6 +504,9 @@ os_file_create_tmpfile(void) /*========================*/ /* out: temporary file handle, or NULL on error */ { #ifdef __NETWARE__ FILE* file = tmpfile(); #else /* __NETWARE__ */ FILE* file = NULL; int fd = -1; # ifdef UNIV_HOTBACKUP Loading Loading @@ -541,15 +544,18 @@ os_file_create_tmpfile(void) if (fd >= 0) { file = fdopen(fd, "w+b"); } #endif /* __NETWARE__ */ if (!file) { ut_print_timestamp(stderr); fprintf(stderr, " InnoDB: Error: unable to create temporary file;" " errno: %d\n", errno); #ifndef __NETWARE__ if (fd >= 0) { close(fd); } #endif /* !__NETWARE__ */ } return(file); Loading
sql/ha_innodb.cc +7 −2 Original line number Diff line number Diff line Loading @@ -5265,7 +5265,9 @@ ha_innobase::store_lock( if ((lock_type == TL_READ && thd->in_lock_tables) || (lock_type == TL_READ_HIGH_PRIORITY && thd->in_lock_tables) || lock_type == TL_READ_WITH_SHARED_LOCKS || lock_type == TL_READ_NO_INSERT) { lock_type == TL_READ_NO_INSERT || thd->lex->sql_command != SQLCOM_SELECT) { /* The OR cases above are in this order: 1) MySQL is doing LOCK TABLES ... READ LOCAL, or 2) (we do not know when TL_READ_HIGH_PRIORITY is used), or Loading @@ -5273,7 +5275,10 @@ ha_innobase::store_lock( 4) we are doing a complex SQL statement like INSERT INTO ... SELECT ... and the logical logging (MySQL binlog) requires the use of a locking read, or MySQL is doing LOCK TABLES ... READ. */ MySQL is doing LOCK TABLES ... READ. 5) we let InnoDB do locking reads for all SQL statements that are not simple SELECTs; note that select_lock_type in this case may get strengthened in ::external_lock() to LOCK_X. */ prebuilt->select_lock_type = LOCK_S; prebuilt->stored_select_lock_type = LOCK_S; Loading