List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:December 23 2009 12:03pm
Subject:bzr commit into mysql-5.1-bugteam branch (joro:3294) Bug#46175
View as plain text  
#At file:///home/kgeorge/mysql/work/B46175-5.1-bugteam/ based on revid:satya.bn@stripped

 3294 Georgi Kodinov	2009-12-23
      Bug #46175: NULL read_view and consistent read assertion
      
      The optimizer must not continue executing the current query
      if e.g. the storage engine reports an error.
      This is somewhat hard to implement with Item::val_xxx()
      because they do not have means to return error code.
      This is why we need to check the thread's error state after
      a call to one of the Item::val_xxx() methods.
      
      Fixed store_key_item::copy_inner() to return an error state 
      if an error happened during the call to Item::save_in_field() 
      because it calls Item::val_xxx().

    modified:
      sql/sql_select.h
=== modified file 'sql/sql_select.h'
--- a/sql/sql_select.h	2009-11-03 17:45:52 +0000
+++ b/sql/sql_select.h	2009-12-23 12:02:55 +0000
@@ -709,6 +709,12 @@ public:
     my_bitmap_map *old_map= dbug_tmp_use_all_columns(table,
                                                      table->write_set);
     int res= item->save_in_field(to_field, 1);
+    /* 
+     Item::save_in_field() may call Item::val_xxx(). And if this is a subquery
+     we need to check for errors executing it and react accordingly
+    */ 
+    if (table->in_use->is_error())
+      res= 3;
     dbug_tmp_restore_column_map(table->write_set, old_map);
     null_key= to_field->is_null() || item->null_value;
     return (err != 0 || res > 2 ? STORE_KEY_FATAL : (store_key_result) res); 


Attachment: [text/bzr-bundle] bzr/joro@sun.com-20091223120255-wpmpx6akim1xoycw.bundle
Thread
bzr commit into mysql-5.1-bugteam branch (joro:3294) Bug#46175Georgi Kodinov23 Dec
  • Re: bzr commit into mysql-5.1-bugteam branch (joro:3294) Bug#46175Evgeny Potemkin25 Dec