Commit d740bd50 authored by Ramil Kalimullin's avatar Ramil Kalimullin

Manual merge with mysql-5.1-bugteam.

parents 352ce1b5 0137e028
...@@ -65,7 +65,8 @@ extern const char *globerrs[]; /* my_error_messages is here */ ...@@ -65,7 +65,8 @@ extern const char *globerrs[]; /* my_error_messages is here */
#define EE_FILE_NOT_CLOSED 30 #define EE_FILE_NOT_CLOSED 30
#define EE_CHANGE_OWNERSHIP 31 #define EE_CHANGE_OWNERSHIP 31
#define EE_CHANGE_PERMISSIONS 32 #define EE_CHANGE_PERMISSIONS 32
#define EE_ERROR_LAST 32 /* Copy last error nr */ #define EE_CANT_SEEK 33
#define EE_ERROR_LAST 33 /* Copy last error nr */
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */ /* Add error numbers before EE_ERROR_LAST and change it accordingly. */
/* exit codes for all MySQL programs */ /* exit codes for all MySQL programs */
......
...@@ -52,6 +52,7 @@ const char *globerrs[GLOBERRS]= ...@@ -52,6 +52,7 @@ const char *globerrs[GLOBERRS]=
"File '%s' (fileno: %d) was not closed", "File '%s' (fileno: %d) was not closed",
"Can't change ownership of the file '%s' (Errcode: %d)", "Can't change ownership of the file '%s' (Errcode: %d)",
"Can't change permissions of the file '%s' (Errcode: %d)", "Can't change permissions of the file '%s' (Errcode: %d)",
"Can't seek in file '%s' (Errcode: %d)"
}; };
void init_glob_errs(void) void init_glob_errs(void)
...@@ -94,6 +95,7 @@ void init_glob_errs() ...@@ -94,6 +95,7 @@ void init_glob_errs()
EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed"; EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed";
EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %d)"; EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %d)";
EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %d)"; EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %d)";
EE(EE_CANT_SEEK) = "Can't seek in file '%s' (Errcode: %d)";
} }
#endif #endif
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "mysys_priv.h" #include "mysys_priv.h"
#include "mysys_err.h"
/* /*
Seek to a position in a file. Seek to a position in a file.
...@@ -42,8 +43,7 @@ ...@@ -42,8 +43,7 @@
actual error. actual error.
*/ */
my_off_t my_seek(File fd, my_off_t pos, int whence, my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags)
myf MyFlags __attribute__((unused)))
{ {
os_off_t newpos= -1; os_off_t newpos= -1;
DBUG_ENTER("my_seek"); DBUG_ENTER("my_seek");
...@@ -63,7 +63,9 @@ my_off_t my_seek(File fd, my_off_t pos, int whence, ...@@ -63,7 +63,9 @@ my_off_t my_seek(File fd, my_off_t pos, int whence,
if (newpos == (os_off_t) -1) if (newpos == (os_off_t) -1)
{ {
my_errno= errno; my_errno= errno;
DBUG_PRINT("error",("lseek: %llu errno: %d", (ulonglong) newpos,errno)); if (MyFlags & MY_WME)
my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), my_errno);
DBUG_PRINT("error", ("lseek: %llu errno: %d", (ulonglong) newpos, errno));
DBUG_RETURN(MY_FILEPOS_ERROR); DBUG_RETURN(MY_FILEPOS_ERROR);
} }
if ((my_off_t) newpos != pos) if ((my_off_t) newpos != pos)
...@@ -77,7 +79,7 @@ my_off_t my_seek(File fd, my_off_t pos, int whence, ...@@ -77,7 +79,7 @@ my_off_t my_seek(File fd, my_off_t pos, int whence,
/* Tell current position of file */ /* Tell current position of file */
/* ARGSUSED */ /* ARGSUSED */
my_off_t my_tell(File fd, myf MyFlags __attribute__((unused))) my_off_t my_tell(File fd, myf MyFlags)
{ {
os_off_t pos; os_off_t pos;
DBUG_ENTER("my_tell"); DBUG_ENTER("my_tell");
...@@ -89,7 +91,12 @@ my_off_t my_tell(File fd, myf MyFlags __attribute__((unused))) ...@@ -89,7 +91,12 @@ my_off_t my_tell(File fd, myf MyFlags __attribute__((unused)))
pos= my_seek(fd, 0L, MY_SEEK_CUR,0); pos= my_seek(fd, 0L, MY_SEEK_CUR,0);
#endif #endif
if (pos == (os_off_t) -1) if (pos == (os_off_t) -1)
{
my_errno= errno; my_errno= errno;
if (MyFlags & MY_WME)
my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), my_errno);
DBUG_PRINT("error", ("tell: %llu errno: %d", (ulonglong) pos, my_errno));
}
DBUG_PRINT("exit",("pos: %llu", (ulonglong) pos)); DBUG_PRINT("exit",("pos: %llu", (ulonglong) pos));
DBUG_RETURN((my_off_t) pos); DBUG_RETURN((my_off_t) pos);
} /* my_tell */ } /* my_tell */
...@@ -118,8 +118,7 @@ int my_is_symlink(const char *filename __attribute__((unused))) ...@@ -118,8 +118,7 @@ int my_is_symlink(const char *filename __attribute__((unused)))
'to' may be equal to 'filename' 'to' may be equal to 'filename'
*/ */
int my_realpath(char *to, const char *filename, int my_realpath(char *to, const char *filename, myf MyFlags)
myf MyFlags __attribute__((unused)))
{ {
#if defined(HAVE_REALPATH) && !defined(HAVE_BROKEN_REALPATH) #if defined(HAVE_REALPATH) && !defined(HAVE_BROKEN_REALPATH)
int result=0; int result=0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment