List:Commits« Previous MessageNext Message »
From:Guilhem Bichot Date:January 30 2007 9:48pm
Subject:bk commit into 5.1 tree (guilhem:1.2413) BUG#735
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of guilhem. When guilhem 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, 2007-01-30 22:48:05+01:00, guilhem@stripped +7 -0
  Mechanical class renaming:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
  and also THD::protocol_simple->THD::protocol_text,
  THD::protocol_prep->THD::protocol_binary.
  Reason: the binary protocol is not bound to be used only with
  prepared statements long term (see WL#3559 "Decouple binary protocol
  from prepared statements"). Renaming now is pressing because
  the fix for BUG#735 "Prepared Statements: there is
  no support for Query Cache" will introduce a new member
  in class Query_cache_flags telling about the protocol's nature.
  Other reason: "simple" is less accurate than "text".
  Future patches for BUG#735 will rely on this cset.

  libmysqld/lib_sql.cc@stripped, 2007-01-30 22:48:02+01:00, guilhem@stripped +6 -6
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/protocol.cc@stripped, 2007-01-30 22:48:02+01:00, guilhem@stripped +34 -34
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/protocol.h@stripped, 2007-01-30 22:48:02+01:00, guilhem@stripped +6 -6
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/set_var.cc@stripped, 2007-01-30 22:48:03+01:00, guilhem@stripped +2 -2
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/sql_class.cc@stripped, 2007-01-30 22:48:03+01:00, guilhem@stripped +3 -3
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/sql_class.h@stripped, 2007-01-30 22:48:03+01:00, guilhem@stripped +2 -2
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

  sql/sql_prepare.cc@stripped, 2007-01-30 22:48:03+01:00, guilhem@stripped +16 -16
    Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary

# 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:	guilhem
# Host:	gbichot3.local
# Root:	/home/mysql_src/mysql-5.1-runtime-735

--- 1.122/sql/protocol.cc	2007-01-30 22:48:15 +01:00
+++ 1.123/sql/protocol.cc	2007-01-30 22:48:15 +01:00
@@ -33,7 +33,7 @@ void net_send_error_packet(THD *thd, uin
 #ifndef EMBEDDED_LIBRARY
 bool Protocol::net_store_data(const char *from, uint length)
 #else
-bool Protocol_prep::net_store_data(const char *from, uint length)
+bool Protocol_binary::net_store_data(const char *from, uint length)
 #endif
 {
   ulong packet_length=packet->length();
@@ -555,7 +555,7 @@ bool Protocol::send_fields(List<Item> *l
   Item *item;
   char buff[80];
   String tmp((char*) buff,sizeof(buff),&my_charset_bin);
-  Protocol_simple prot(thd);
+  Protocol_text prot(thd);
   String *local_packet= prot.storage_packet();
   CHARSET_INFO *thd_charset= thd->variables.character_set_results;
   DBUG_ENTER("send_fields");
@@ -758,7 +758,7 @@ bool Protocol::store(I_List<i_string>* s
 ****************************************************************************/
 
 #ifndef EMBEDDED_LIBRARY
-void Protocol_simple::prepare_for_resend()
+void Protocol_text::prepare_for_resend()
 {
   packet->length(0);
 #ifndef DBUG_OFF
@@ -766,7 +766,7 @@ void Protocol_simple::prepare_for_resend
 #endif
 }
 
-bool Protocol_simple::store_null()
+bool Protocol_text::store_null()
 {
 #ifndef DBUG_OFF
   field_pos++;
@@ -799,7 +799,7 @@ bool Protocol::store_string_aux(const ch
 }
 
 
-bool Protocol_simple::store(const char *from, uint length,
+bool Protocol_text::store(const char *from, uint length,
 			    CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
 {
 #ifndef DBUG_OFF
@@ -815,7 +815,7 @@ bool Protocol_simple::store(const char *
 }
 
 
-bool Protocol_simple::store(const char *from, uint length,
+bool Protocol_text::store(const char *from, uint length,
 			    CHARSET_INFO *fromcs)
 {
   CHARSET_INFO *tocs= this->thd->variables.character_set_results;
@@ -832,7 +832,7 @@ bool Protocol_simple::store(const char *
 }
 
 
-bool Protocol_simple::store_tiny(longlong from)
+bool Protocol_text::store_tiny(longlong from)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 || field_types[field_pos] == MYSQL_TYPE_TINY);
@@ -844,7 +844,7 @@ bool Protocol_simple::store_tiny(longlon
 }
 
 
-bool Protocol_simple::store_short(longlong from)
+bool Protocol_text::store_short(longlong from)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -858,7 +858,7 @@ bool Protocol_simple::store_short(longlo
 }
 
 
-bool Protocol_simple::store_long(longlong from)
+bool Protocol_text::store_long(longlong from)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -872,7 +872,7 @@ bool Protocol_simple::store_long(longlon
 }
 
 
-bool Protocol_simple::store_longlong(longlong from, bool unsigned_flag)
+bool Protocol_text::store_longlong(longlong from, bool unsigned_flag)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -887,7 +887,7 @@ bool Protocol_simple::store_longlong(lon
 }
 
 
-bool Protocol_simple::store_decimal(const my_decimal *d)
+bool Protocol_text::store_decimal(const my_decimal *d)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -901,7 +901,7 @@ bool Protocol_simple::store_decimal(cons
 }
 
 
-bool Protocol_simple::store(float from, uint32 decimals, String *buffer)
+bool Protocol_text::store(float from, uint32 decimals, String *buffer)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -913,7 +913,7 @@ bool Protocol_simple::store(float from, 
 }
 
 
-bool Protocol_simple::store(double from, uint32 decimals, String *buffer)
+bool Protocol_text::store(double from, uint32 decimals, String *buffer)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -925,7 +925,7 @@ bool Protocol_simple::store(double from,
 }
 
 
-bool Protocol_simple::store(Field *field)
+bool Protocol_text::store(Field *field)
 {
   if (field->is_null())
     return store_null();
@@ -959,7 +959,7 @@ bool Protocol_simple::store(Field *field
 */
 
 
-bool Protocol_simple::store(TIME *tm)
+bool Protocol_text::store(TIME *tm)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -982,7 +982,7 @@ bool Protocol_simple::store(TIME *tm)
 }
 
 
-bool Protocol_simple::store_date(TIME *tm)
+bool Protocol_text::store_date(TIME *tm)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -1001,7 +1001,7 @@ bool Protocol_simple::store_date(TIME *t
         we support 0-6 decimals for time.
 */
 
-bool Protocol_simple::store_time(TIME *tm)
+bool Protocol_text::store_time(TIME *tm)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -1041,7 +1041,7 @@ bool Protocol_simple::store_time(TIME *t
    [..]..[[length]data]              data
 ****************************************************************************/
 
-bool Protocol_prep::prepare_for_send(List<Item> *item_list)
+bool Protocol_binary::prepare_for_send(List<Item> *item_list)
 {
   Protocol::prepare_for_send(item_list);
   bit_fields= (field_count+9)/8;
@@ -1052,7 +1052,7 @@ bool Protocol_prep::prepare_for_send(Lis
 }
 
 
-void Protocol_prep::prepare_for_resend()
+void Protocol_binary::prepare_for_resend()
 {
   packet->length(bit_fields+1);
   bzero((char*) packet->ptr(), 1+bit_fields);
@@ -1060,21 +1060,21 @@ void Protocol_prep::prepare_for_resend()
 }
 
 
-bool Protocol_prep::store(const char *from, uint length, CHARSET_INFO *fromcs)
+bool Protocol_binary::store(const char *from, uint length, CHARSET_INFO *fromcs)
 {
   CHARSET_INFO *tocs= thd->variables.character_set_results;
   field_pos++;
   return store_string_aux(from, length, fromcs, tocs);
 }
 
-bool Protocol_prep::store(const char *from,uint length,
+bool Protocol_binary::store(const char *from,uint length,
 			  CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
 {
   field_pos++;
   return store_string_aux(from, length, fromcs, tocs);
 }
 
-bool Protocol_prep::store_null()
+bool Protocol_binary::store_null()
 {
   uint offset= (field_pos+2)/8+1, bit= (1 << ((field_pos+2) & 7));
   /* Room for this as it's allocated in prepare_for_send */
@@ -1085,7 +1085,7 @@ bool Protocol_prep::store_null()
 }
 
 
-bool Protocol_prep::store_tiny(longlong from)
+bool Protocol_binary::store_tiny(longlong from)
 {
   char buff[1];
   field_pos++;
@@ -1094,7 +1094,7 @@ bool Protocol_prep::store_tiny(longlong 
 }
 
 
-bool Protocol_prep::store_short(longlong from)
+bool Protocol_binary::store_short(longlong from)
 {
   field_pos++;
   char *to= packet->prep_append(2, PACKET_BUFFER_EXTRA_ALLOC);
@@ -1105,7 +1105,7 @@ bool Protocol_prep::store_short(longlong
 }
 
 
-bool Protocol_prep::store_long(longlong from)
+bool Protocol_binary::store_long(longlong from)
 {
   field_pos++;
   char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC);
@@ -1116,7 +1116,7 @@ bool Protocol_prep::store_long(longlong 
 }
 
 
-bool Protocol_prep::store_longlong(longlong from, bool unsigned_flag)
+bool Protocol_binary::store_longlong(longlong from, bool unsigned_flag)
 {
   field_pos++;
   char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC);
@@ -1126,7 +1126,7 @@ bool Protocol_prep::store_longlong(longl
   return 0;
 }
 
-bool Protocol_prep::store_decimal(const my_decimal *d)
+bool Protocol_binary::store_decimal(const my_decimal *d)
 {
 #ifndef DBUG_OFF
   DBUG_ASSERT(field_types == 0 ||
@@ -1139,7 +1139,7 @@ bool Protocol_prep::store_decimal(const 
   return store(str.ptr(), str.length(), str.charset());
 }
 
-bool Protocol_prep::store(float from, uint32 decimals, String *buffer)
+bool Protocol_binary::store(float from, uint32 decimals, String *buffer)
 {
   field_pos++;
   char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC);
@@ -1150,7 +1150,7 @@ bool Protocol_prep::store(float from, ui
 }
 
 
-bool Protocol_prep::store(double from, uint32 decimals, String *buffer)
+bool Protocol_binary::store(double from, uint32 decimals, String *buffer)
 {
   field_pos++;
   char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC);
@@ -1161,7 +1161,7 @@ bool Protocol_prep::store(double from, u
 }
 
 
-bool Protocol_prep::store(Field *field)
+bool Protocol_binary::store(Field *field)
 {
   /*
     We should not increment field_pos here as send_binary() will call another
@@ -1173,7 +1173,7 @@ bool Protocol_prep::store(Field *field)
 }
 
 
-bool Protocol_prep::store(TIME *tm)
+bool Protocol_binary::store(TIME *tm)
 {
   char buff[12],*pos;
   uint length;
@@ -1199,15 +1199,15 @@ bool Protocol_prep::store(TIME *tm)
   return packet->append(buff, length+1, PACKET_BUFFER_EXTRA_ALLOC);
 }
 
-bool Protocol_prep::store_date(TIME *tm)
+bool Protocol_binary::store_date(TIME *tm)
 {
   tm->hour= tm->minute= tm->second=0;
   tm->second_part= 0;
-  return Protocol_prep::store(tm);
+  return Protocol_binary::store(tm);
 }
 
 
-bool Protocol_prep::store_time(TIME *tm)
+bool Protocol_binary::store_time(TIME *tm)
 {
   char buff[13], *pos;
   uint length;

--- 1.310/sql/sql_class.cc	2007-01-30 22:48:15 +01:00
+++ 1.311/sql/sql_class.cc	2007-01-30 22:48:15 +01:00
@@ -300,9 +300,9 @@ THD::THD()
     bzero((char*) &user_var_events, sizeof(user_var_events));
 
   /* Protocol */
-  protocol= &protocol_simple;			// Default protocol
-  protocol_simple.init(this);
-  protocol_prep.init(this);
+  protocol= &protocol_text;			// Default protocol
+  protocol_text.init(this);
+  protocol_binary.init(this);
 
   tablespace_op=FALSE;
   ulong tmp=sql_rnd_with_mutex();

--- 1.338/sql/sql_class.h	2007-01-30 22:48:15 +01:00
+++ 1.339/sql/sql_class.h	2007-01-30 22:48:15 +01:00
@@ -853,8 +853,8 @@ public:
   NET	  net;				// client connection descriptor
   MEM_ROOT warn_root;			// For warnings and errors
   Protocol *protocol;			// Current protocol
-  Protocol_simple protocol_simple;	// Normal protocol
-  Protocol_prep protocol_prep;		// Binary protocol
+  Protocol_text   protocol_text;	// Normal protocol
+  Protocol_binary protocol_binary;	// Binary protocol
   HASH    user_vars;			// hash for user variables
   String  packet;			// dynamic buffer for network I/O
   String  convert_buffer;               // buffer for charset conversions

--- 1.37/sql/protocol.h	2007-01-30 22:48:15 +01:00
+++ 1.38/sql/protocol.h	2007-01-30 22:48:15 +01:00
@@ -101,11 +101,11 @@ public:
 
 /* Class used for the old (MySQL 4.0 protocol) */
 
-class Protocol_simple :public Protocol
+class Protocol_text :public Protocol
 {
 public:
-  Protocol_simple() {}
-  Protocol_simple(THD *thd_arg) :Protocol(thd_arg) {}
+  Protocol_text() {}
+  Protocol_text(THD *thd_arg) :Protocol(thd_arg) {}
   virtual void prepare_for_resend();
   virtual bool store_null();
   virtual bool store_tiny(longlong from);
@@ -128,13 +128,13 @@ public:
 };
 
 
-class Protocol_prep :public Protocol
+class Protocol_binary :public Protocol
 {
 private:
   uint bit_fields;
 public:
-  Protocol_prep() {}
-  Protocol_prep(THD *thd_arg) :Protocol(thd_arg) {}
+  Protocol_binary() {}
+  Protocol_binary(THD *thd_arg) :Protocol(thd_arg) {}
   virtual bool prepare_for_send(List<Item> *item_list);
   virtual void prepare_for_resend();
 #ifdef EMBEDDED_LIBRARY

--- 1.211/sql/set_var.cc	2007-01-30 22:48:15 +01:00
+++ 1.212/sql/set_var.cc	2007-01-30 22:48:15 +01:00
@@ -2730,8 +2730,8 @@ int set_var_collation_client::update(THD
   thd->variables.character_set_results= character_set_results;
   thd->variables.collation_connection= collation_connection;
   thd->update_charset();
-  thd->protocol_simple.init(thd);
-  thd->protocol_prep.init(thd);
+  thd->protocol_text.init(thd);
+  thd->protocol_binary.init(thd);
   return 0;
 }
 

--- 1.127/libmysqld/lib_sql.cc	2007-01-30 22:48:15 +01:00
+++ 1.128/libmysqld/lib_sql.cc	2007-01-30 22:48:15 +01:00
@@ -825,7 +825,7 @@ int Protocol::begin_dataset()
   remove last row of current recordset
 
   SYNOPSIS
-  Protocol_simple::remove_last_row()
+  Protocol_text::remove_last_row()
 
   NOTES
     does the loop from the beginning of the current recordset to
@@ -833,12 +833,12 @@ int Protocol::begin_dataset()
     Not supposed to be frequently called.
 */
 
-void Protocol_simple::remove_last_row()
+void Protocol_text::remove_last_row()
 {
   MYSQL_DATA *data= thd->cur_data;
   MYSQL_ROWS **last_row_hook= &data->data;
   uint count= data->rows;
-  DBUG_ENTER("Protocol_simple::remove_last_row");
+  DBUG_ENTER("Protocol_text::remove_last_row");
   while (--count)
     last_row_hook= &(*last_row_hook)->next;
 
@@ -967,7 +967,7 @@ bool Protocol::write()
   return false;
 }
 
-bool Protocol_prep::write()
+bool Protocol_binary::write()
 {
   MYSQL_ROWS *cur;
   MYSQL_DATA *data= thd->cur_data;
@@ -1034,7 +1034,7 @@ void net_send_error_packet(THD *thd, uin
 }
 
 
-void Protocol_simple::prepare_for_resend()
+void Protocol_text::prepare_for_resend()
 {
   MYSQL_ROWS *cur;
   MYSQL_DATA *data= thd->cur_data;
@@ -1058,7 +1058,7 @@ void Protocol_simple::prepare_for_resend
   DBUG_VOID_RETURN;
 }
 
-bool Protocol_simple::store_null()
+bool Protocol_text::store_null()
 {
   *(next_field++)= NULL;
   ++next_mysql_field;

--- 1.190/sql/sql_prepare.cc	2007-01-30 22:48:15 +01:00
+++ 1.191/sql/sql_prepare.cc	2007-01-30 22:48:15 +01:00
@@ -83,11 +83,11 @@ When one supplies long data for a placeh
 
 /* A result class used to send cursor rows using the binary protocol. */
 
-class Select_fetch_protocol_prep: public select_send
+class Select_fetch_protocol_binary: public select_send
 {
-  Protocol_prep protocol;
+  Protocol_binary protocol;
 public:
-  Select_fetch_protocol_prep(THD *thd);
+  Select_fetch_protocol_binary(THD *thd);
   virtual bool send_fields(List<Item> &list, uint flags);
   virtual bool send_data(List<Item> &items);
   virtual bool send_eof();
@@ -112,7 +112,7 @@ public:
   };
 
   THD *thd;
-  Select_fetch_protocol_prep result;
+  Select_fetch_protocol_binary result;
   Protocol *protocol;
   Item_param **param_array;
   uint param_count;
@@ -224,9 +224,9 @@ static bool send_prep_stmt(Prepared_stat
   */
   DBUG_RETURN(my_net_write(net, buff, sizeof(buff)) ||
               (stmt->param_count &&
-               stmt->thd->protocol_simple.send_fields((List<Item> *)
-                                                      &stmt->lex->param_list,
-                                                      Protocol::SEND_EOF)));
+               stmt->thd->protocol_text.send_fields((List<Item> *)
+                                                    &stmt->lex->param_list,
+                                                    Protocol::SEND_EOF)));
 }
 #else
 static bool send_prep_stmt(Prepared_statement *stmt,
@@ -1882,7 +1882,7 @@ void mysql_stmt_prepare(THD *thd, const 
   /* First of all clear possible warnings from the previous command */
   mysql_reset_thd_for_next_command(thd);
 
-  if (! (stmt= new Prepared_statement(thd, &thd->protocol_prep)))
+  if (! (stmt= new Prepared_statement(thd, &thd->protocol_binary)))
     DBUG_VOID_RETURN; /* out of memory: error is set in Sql_alloc */
 
   if (thd->stmt_map.insert(thd, stmt))
@@ -2054,7 +2054,7 @@ void mysql_sql_stmt_prepare(THD *thd)
   const char *query;
   uint query_len;
   DBUG_ENTER("mysql_sql_stmt_prepare");
-  DBUG_ASSERT(thd->protocol == &thd->protocol_simple);
+  DBUG_ASSERT(thd->protocol == &thd->protocol_text);
 
   if ((stmt= (Prepared_statement*) thd->stmt_map.find_by_name(name)))
   {
@@ -2067,7 +2067,7 @@ void mysql_sql_stmt_prepare(THD *thd)
   }
 
   if (! (query= get_dynamic_sql_string(lex, &query_len)) ||
-      ! (stmt= new Prepared_statement(thd, &thd->protocol_simple)))
+      ! (stmt= new Prepared_statement(thd, &thd->protocol_text)))
   {
     DBUG_VOID_RETURN;                           /* out of memory */
   }
@@ -2617,14 +2617,14 @@ void mysql_stmt_get_longdata(THD *thd, c
 
 
 /***************************************************************************
- Select_fetch_protocol_prep
+ Select_fetch_protocol_binary
 ****************************************************************************/
 
-Select_fetch_protocol_prep::Select_fetch_protocol_prep(THD *thd)
+Select_fetch_protocol_binary::Select_fetch_protocol_binary(THD *thd)
   :protocol(thd)
 {}
 
-bool Select_fetch_protocol_prep::send_fields(List<Item> &list, uint flags)
+bool Select_fetch_protocol_binary::send_fields(List<Item> &list, uint flags)
 {
   bool rc;
   Protocol *save_protocol= thd->protocol;
@@ -2642,7 +2642,7 @@ bool Select_fetch_protocol_prep::send_fi
   return rc;
 }
 
-bool Select_fetch_protocol_prep::send_eof()
+bool Select_fetch_protocol_binary::send_eof()
 {
   Protocol *save_protocol= thd->protocol;
 
@@ -2654,7 +2654,7 @@ bool Select_fetch_protocol_prep::send_eo
 
 
 bool
-Select_fetch_protocol_prep::send_data(List<Item> &fields)
+Select_fetch_protocol_binary::send_data(List<Item> &fields)
 {
   Protocol *save_protocol= thd->protocol;
   bool rc;
@@ -2998,7 +2998,7 @@ bool Prepared_statement::execute(String 
           mysql_open_cursor(thd, (uint) ALWAYS_MATERIALIZED_CURSOR,
                             &result, &cursor) :
           mysql_execute_command(thd));
-  thd->protocol= &thd->protocol_simple;         /* use normal protocol */
+  thd->protocol= &thd->protocol_text;         /* use normal protocol */
 
   /* Assert that if an error, no cursor is open */
   DBUG_ASSERT(! (error && cursor));
Thread
bk commit into 5.1 tree (guilhem:1.2413) BUG#735Guilhem Bichot30 Jan