List:Commits« Previous MessageNext Message »
From:holyfoot Date:October 24 2006 12:19pm
Subject:bk commit into 4.1 tree (holyfoot:1.2535) BUG#23427
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of hf. When hf 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, 2006-10-24 17:19:02+05:00, holyfoot@stripped +3 -0
  Bug #23427 (incompatible ABI change)
  
  the incompatibility was caused by current_stmt member added to the MYSQL
  structure.
  It's possible to move it to THD structure instead which saves ABI

  include/mysql.h@stripped, 2006-10-24 17:19:00+05:00, holyfoot@stripped +0 -6
    member moved to the THD structure

  libmysqld/lib_sql.cc@stripped, 2006-10-24 17:19:00+05:00, holyfoot@stripped +5 -5
    now we use THD member here

  sql/sql_class.h@stripped, 2006-10-24 17:19:00+05:00, holyfoot@stripped +6 -0
    current_stmt member added for the embedded server

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	holyfoot
# Host:	deer.(none)
# Root:	/home/hf/work/current_stmt/my41-current_stmt

--- 1.143/include/mysql.h	2006-10-24 17:19:07 +05:00
+++ 1.144/include/mysql.h	2006-10-24 17:19:07 +05:00
@@ -270,12 +270,6 @@ typedef struct st_mysql
     from mysql_stmt_close if close had to cancel result set of this object.
   */
   my_bool *unbuffered_fetch_owner;
-  /*
-    In embedded server it points to the statement that is processed
-    in the current query. We store some results directly in statement
-    fields then.
-  */
-  struct st_mysql_stmt *current_stmt;
 } MYSQL;
 
 typedef struct st_mysql_res {

--- 1.289/sql/sql_class.h	2006-10-24 17:19:07 +05:00
+++ 1.290/sql/sql_class.h	2006-10-24 17:19:07 +05:00
@@ -686,6 +686,12 @@ public:
   char *extra_data;
   ulong extra_length;
   String query_rest;
+  /*
+    In embedded server it points to the statement that is processed
+    in the current query. We store some results directly in statement
+    fields then.
+  */
+  struct st_mysql_stmt *current_stmt;
 #endif
   NET	  net;				// client connection descriptor
   MEM_ROOT warn_root;			// For warnings and errors

--- 1.128/libmysqld/lib_sql.cc	2006-10-24 17:19:07 +05:00
+++ 1.129/libmysqld/lib_sql.cc	2006-10-24 17:19:07 +05:00
@@ -94,7 +94,7 @@ emb_advanced_command(MYSQL *mysql, enum 
   mysql->affected_rows= ~(my_ulonglong) 0;
   mysql->field_count= 0;
   net->last_errno= 0;
-  mysql->current_stmt= stmt;
+  thd->current_stmt= stmt;
 
   thd->store_globals();				// Fix if more than one connect
   /* 
@@ -644,8 +644,8 @@ bool Protocol::send_fields(List<Item> *l
     DBUG_RETURN(0);
 
   field_count= list->elements;
-  field_alloc= mysql->current_stmt ? &mysql->current_stmt->mem_root :
-                                     &mysql->field_alloc;
+  field_alloc= thd->current_stmt ? &thd->current_stmt->mem_root :
+                                   &mysql->field_alloc;
   if (!(client_field= mysql->fields= 
 	(MYSQL_FIELD *)alloc_root(field_alloc, 
 				  sizeof(MYSQL_FIELD) * field_count)))
@@ -751,8 +751,8 @@ bool Protocol_prep::write()
   {
     MYSQL *mysql= thd->mysql;
 
-    if (mysql->current_stmt)
-      data= &mysql->current_stmt->result;
+    if (thd->current_stmt)
+      data= &thd->current_stmt->result;
     else
     {
       if (!(data= (MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
Thread
bk commit into 4.1 tree (holyfoot:1.2535) BUG#23427holyfoot24 Oct