Commit b69ea6d1 authored by unknown's avatar unknown
Browse files

Merge hundin.mysql.fi:/home/heikki/mysql-4.1

into hundin.mysql.fi:/home/heikki/mysql-5.0


innobase/os/os0file.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
parents d4e14b2f 97f5b326
Loading
Loading
Loading
Loading
+15 −9
Original line number Diff line number Diff line
@@ -490,7 +490,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. */

@@ -498,7 +498,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. */
@@ -508,6 +508,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
@@ -545,15 +548,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);
+7 −2
Original line number Diff line number Diff line
@@ -5704,7 +5704,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
@@ -5712,7 +5714,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;