diff options
author | unknown <marko@hundin.mysql.fi> | 2005-01-14 15:23:34 +0200 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2005-01-14 15:23:34 +0200 |
commit | 6d9f637870208e1657bf88a80a49b7d0a9126187 (patch) | |
tree | 11bb53344d5f984bf93f67720b2e31be7731a581 /innobase/os | |
parent | 8dc27f1ef94d909f063dd2fa3cea2619eae74518 (diff) | |
parent | 8870b671b02bcdd87a2ac64fb3b19fb2da3686ee (diff) | |
download | mariadb-git-6d9f637870208e1657bf88a80a49b7d0a9126187.tar.gz |
Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/k/mysql-4.1
innobase/os/os0file.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
Diffstat (limited to 'innobase/os')
-rw-r--r-- | innobase/os/os0file.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index 6fb27346a37..7090e8662f3 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -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. */ @@ -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. */ @@ -504,9 +504,12 @@ 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 +# ifdef UNIV_HOTBACKUP int tries; for (tries = 10; tries--; ) { char* name = tempnam(fil_path_to_mysql_datadir, "ib"); @@ -515,15 +518,15 @@ os_file_create_tmpfile(void) } fd = open(name, -# ifdef __WIN__ +# ifdef __WIN__ O_SEQUENTIAL | O_SHORT_LIVED | O_TEMPORARY | -# endif /* __WIN__ */ +# endif /* __WIN__ */ O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE); if (fd >= 0) { -# ifndef __WIN__ +# ifndef __WIN__ unlink(name); -# endif /* !__WIN__ */ +# endif /* !__WIN__ */ free(name); break; } @@ -534,22 +537,25 @@ os_file_create_tmpfile(void) name); free(name); } -#else /* UNIV_HOTBACKUP */ +# else /* UNIV_HOTBACKUP */ fd = innobase_mysql_tmpfile(); -#endif /* UNIV_HOTBACKUP */ +# endif /* UNIV_HOTBACKUP */ 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); |