List:Commits« Previous MessageNext Message »
From:msvensson Date:January 15 2008 4:02pm
Subject:bk commit into 5.1 tree (msvensson:1.2653) BUG#33375
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of msvensson.  When msvensson does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2008-01-15 17:01:58+01:00, msvensson@stripped +2 -0
  Bug#33375 all_set corrupted on table object
   - make sure to reset the read and write sets
  
  
  handler.cc, log_event.cc:
    - make sure to reset the read and write sets

  sql/handler.cc@stripped, 2008-01-15 17:00:59+01:00, msvensson@stripped +2 -0
    - make sure to reset the read and write sets

  sql/log_event.cc@stripped, 2008-01-15 17:01:06+01:00, msvensson@stripped +13 -7
    - make sure to reset the read and write sets

diff -Nrup a/sql/handler.cc b/sql/handler.cc
--- a/sql/handler.cc	2007-12-13 12:49:52 +01:00
+++ b/sql/handler.cc	2008-01-15 17:00:59 +01:00
@@ -3710,6 +3710,8 @@ int handler::ha_reset()
   DBUG_ASSERT(inited == NONE);
   /* Free cache used by filesort */
   free_io_cache(table);
+  /* reset the bitmaps to point to defaults */
+  table->default_column_bitmaps();
   DBUG_RETURN(reset());
 }
 
diff -Nrup a/sql/log_event.cc b/sql/log_event.cc
--- a/sql/log_event.cc	2007-12-12 16:20:54 +01:00
+++ b/sql/log_event.cc	2008-01-15 17:01:06 +01:00
@@ -7837,7 +7837,7 @@ int Rows_log_event::find_row(const Relay
     {
       DBUG_PRINT("info",("ha_index_init returns error %d",error));
       table->file->print_error(error, MYF(0));
-      DBUG_RETURN(error);
+      goto err;
     }
 
     /* Fill key data for the row */
@@ -7870,7 +7870,7 @@ int Rows_log_event::find_row(const Relay
       DBUG_PRINT("info",("no record matching the key found in the table"));
       table->file->print_error(error, MYF(0));
       table->file->ha_index_end();
-      DBUG_RETURN(error);
+      goto err;
     }
 
   /*
@@ -7898,7 +7898,7 @@ int Rows_log_event::find_row(const Relay
     if (table->key_info->flags & HA_NOSAME)
     {
       table->file->ha_index_end();
-      DBUG_RETURN(0);
+      goto ok;
     }
 
     /*
@@ -7930,7 +7930,7 @@ int Rows_log_event::find_row(const Relay
         DBUG_PRINT("info",("no record matching the given row found"));
         table->file->print_error(error, MYF(0));
         table->file->ha_index_end();
-        DBUG_RETURN(error);
+        goto err;
       }
     }
 
@@ -7951,7 +7951,7 @@ int Rows_log_event::find_row(const Relay
       DBUG_PRINT("info",("error initializing table scan"
                          " (ha_rnd_init returns %d)",error));
       table->file->print_error(error, MYF(0));
-      DBUG_RETURN(error);
+      goto err;
     }
 
     /* Continue until we find the right record or have made a full loop */
@@ -7975,7 +7975,7 @@ int Rows_log_event::find_row(const Relay
                             " (rnd_next returns %d)",error));
         table->file->print_error(error, MYF(0));
         table->file->ha_rnd_end();
-        DBUG_RETURN(error);
+        goto err;
       }
     }
     while (restart_count < 2 && record_compare(table));
@@ -7995,10 +7995,16 @@ int Rows_log_event::find_row(const Relay
     table->file->ha_rnd_end();
 
     DBUG_ASSERT(error == HA_ERR_END_OF_FILE || error == HA_ERR_RECORD_DELETED || error == 0);
-    DBUG_RETURN(error);
+    goto err;
   }
 
+ok:
+  table->default_column_bitmaps();
   DBUG_RETURN(0);
+
+err:
+  table->default_column_bitmaps();
+  DBUG_RETURN(error);
 }
 
 #endif
Thread
bk commit into 5.1 tree (msvensson:1.2653) BUG#33375msvensson15 Jan