diff options
author | aivanov@mysql.com <> | 2006-01-15 14:50:47 +0300 |
---|---|---|
committer | aivanov@mysql.com <> | 2006-01-15 14:50:47 +0300 |
commit | ee2b765751226cb07f787053aed9f6c89e11b18e (patch) | |
tree | ea8f485c5ac84f163361f95caba927366df83d70 /innobase | |
parent | 977731b3fc0851c8837162fa2b9421f759cb43e8 (diff) | |
download | mariadb-git-ee2b765751226cb07f787053aed9f6c89e11b18e.tar.gz |
Changes from innodb-4.1-ss14 snapshot
Fixed BUG#14056: Column prefix index on UTF-8 primary key
causes "Can't find record.."
Also fixed bug 15991.
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/include/os0file.h | 5 | ||||
-rw-r--r-- | innobase/os/os0file.c | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/innobase/include/os0file.h b/innobase/include/os0file.h index cd07eb49cd6..0091e942d2c 100644 --- a/innobase/include/os0file.h +++ b/innobase/include/os0file.h @@ -86,9 +86,10 @@ log. */ #define OS_FILE_NOT_FOUND 71 #define OS_FILE_DISK_FULL 72 #define OS_FILE_ALREADY_EXISTS 73 -#define OS_FILE_AIO_RESOURCES_RESERVED 74 /* wait for OS aio resources +#define OS_FILE_PATH_ERROR 74 +#define OS_FILE_AIO_RESOURCES_RESERVED 75 /* wait for OS aio resources to become available again */ -#define OS_FILE_ERROR_NOT_SPECIFIED 75 +#define OS_FILE_ERROR_NOT_SPECIFIED 76 /* Types for aio operations */ #define OS_FILE_READ 10 diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index 49f88c0d62a..6ef6f7cd545 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -303,6 +303,8 @@ os_file_get_last_error( return(OS_FILE_NOT_FOUND); } else if (err == EEXIST) { return(OS_FILE_ALREADY_EXISTS); + } else if (err == EXDEV || err == ENOTDIR || err == EISDIR) { + return(OS_FILE_PATH_ERROR); } else { return(100 + err); } @@ -352,7 +354,8 @@ os_file_handle_error( return(TRUE); - } else if (err == OS_FILE_ALREADY_EXISTS) { + } else if (err == OS_FILE_ALREADY_EXISTS + || err == OS_FILE_PATH_ERROR) { return(FALSE); } else { @@ -456,7 +459,8 @@ os_file_handle_error_no_exit( return(TRUE); - } else if (err == OS_FILE_ALREADY_EXISTS) { + } else if (err == OS_FILE_ALREADY_EXISTS + || err == OS_FILE_PATH_ERROR) { return(FALSE); } else { |