← Back to team overview

maria-developers team mailing list archive

bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (monty:2766)

 

#At lp:maria based on revid:monty@xxxxxxxxx-20091116153408-azpb6hq1zfp1kpvv

 2766 Michael Widenius	2009-11-25 [merge]
      Automatic merge
      modified:
        include/mysys_err.h
        mysys/errors.c
        mysys/my_seek.c
        sql/sql_insert.cc
        storage/maria/ha_maria.cc

=== modified file 'include/mysys_err.h'
--- a/include/mysys_err.h	2009-10-26 11:35:42 +0000
+++ b/include/mysys_err.h	2009-11-07 10:34:19 +0000
@@ -63,8 +63,9 @@ extern const char * NEAR globerrs[];	/* 
 #define EE_FILENOTFOUND		29
 #define EE_FILE_NOT_CLOSED	30
 #define EE_CANT_CHMOD		31
-#define EE_CANT_COPY_OWNERSHIP  32
-#define EE_ERROR_LAST           32 /* Copy last error nr */
+#define EE_CANT_SEEK		32
+#define EE_CANT_COPY_OWNERSHIP  33
+#define EE_ERROR_LAST           33 /* Copy last error nr */
 /* Add error numbers before EE_ERROR_LAST and change it accordingly. */
 
   /* exit codes for all MySQL programs */

=== modified file 'mysys/errors.c'
--- a/mysys/errors.c	2009-10-26 11:35:42 +0000
+++ b/mysys/errors.c	2009-11-07 10:34:19 +0000
@@ -51,6 +51,7 @@ const char * NEAR globerrs[GLOBERRS]=
   "File '%s' not found (Errcode: %d)",
   "File '%s' (fileno: %d) was not closed",
   "Can't change mode for file '%s' to 0x%lx (Error: %d)",
+  "Can't do seek on file '%s' (Errcode: %d)",
   "Warning: Can't copy ownership for file '%s' (Error: %d)"
 };
 
@@ -93,6 +94,7 @@ void init_glob_errs()
   EE(EE_FILENOTFOUND)	= "File '%s' not found (Errcode: %d)";
   EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed";
   EE(EE_CANT_CHMOD)    = "Can't change mode for file '%s' to 0x%lx (Error: %d)";
+  EE(EE_CANT_SEEK)     = "Can't do seek on file '%s' (Errcode: %d)";
   EE(EE_CANT_COPY_OWNERSHIP)= "Warning: Can't copy ownership for file '%s' (Error: %d)";
 }
 #endif

=== modified file 'mysys/my_seek.c'
--- a/mysys/my_seek.c	2007-12-18 01:21:32 +0000
+++ b/mysys/my_seek.c	2009-11-07 10:34:19 +0000
@@ -14,6 +14,7 @@
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 #include "mysys_priv.h"
+#include "mysys_err.h"
 
 /* 
   Seek to a position in a file.
@@ -42,8 +43,7 @@
                        actual error.
 */
 
-my_off_t my_seek(File fd, my_off_t pos, int whence,
-		 myf MyFlags __attribute__((unused)))
+my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags)
 {
   reg1 os_off_t newpos= -1;
   DBUG_ENTER("my_seek");
@@ -68,7 +68,9 @@ my_off_t my_seek(File fd, my_off_t pos, 
     newpos= lseek(fd, pos, whence);
   if (newpos == (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",("lseek: %lu  errno: %d", (ulong) newpos,errno));
     DBUG_RETURN(MY_FILEPOS_ERROR);
   }
@@ -83,7 +85,7 @@ my_off_t my_seek(File fd, my_off_t pos, 
 	/* Tell current position of file */
 	/* 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;
   DBUG_ENTER("my_tell");
@@ -95,7 +97,11 @@ my_off_t my_tell(File fd, myf MyFlags __
   pos=lseek(fd, 0L, MY_SEEK_CUR);
 #endif
   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("exit",("pos: %lu", (ulong) pos));
   DBUG_RETURN((my_off_t) pos);
 } /* my_tell */

=== modified file 'sql/sql_insert.cc'
--- a/sql/sql_insert.cc	2009-10-15 21:38:29 +0000
+++ b/sql/sql_insert.cc	2009-11-07 10:34:19 +0000
@@ -3437,10 +3437,12 @@ static TABLE *create_table_from_items(TH
     Create_field *cr_field;
     Field *field, *def_field;
     if (item->type() == Item::FUNC_ITEM)
+    {
       if (item->result_type() != STRING_RESULT)
         field= item->tmp_table_field(&tmp_table);
       else
         field= item->tmp_table_field_from_field_type(&tmp_table, 0);
+    }
     else
       field= create_tmp_field(thd, &tmp_table, item, item->type(),
                               (Item ***) 0, &tmp_field, &def_field, 0, 0, 0, 0,

=== modified file 'storage/maria/ha_maria.cc'
--- a/storage/maria/ha_maria.cc	2009-10-26 11:35:42 +0000
+++ b/storage/maria/ha_maria.cc	2009-11-07 10:34:19 +0000
@@ -3341,7 +3341,7 @@ mysql_declare_plugin(maria)
   MYSQL_STORAGE_ENGINE_PLUGIN,
   &maria_storage_engine,
   "MARIA",
-  "MySQL AB",
+  "Monty Program Ab",
   "Crash-safe tables with MyISAM heritage",
   PLUGIN_LICENSE_GPL,
   ha_maria_init,              /* Plugin Init                     */