Commit 7f028f6b authored by unknown's avatar unknown

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:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/protocol.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/protocol.h:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/set_var.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_class.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_class.h:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_prepare.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
parent 2f6812be
...@@ -825,7 +825,7 @@ int Protocol::begin_dataset() ...@@ -825,7 +825,7 @@ int Protocol::begin_dataset()
remove last row of current recordset remove last row of current recordset
SYNOPSIS SYNOPSIS
Protocol_simple::remove_last_row() Protocol_text::remove_last_row()
NOTES NOTES
does the loop from the beginning of the current recordset to does the loop from the beginning of the current recordset to
...@@ -833,12 +833,12 @@ int Protocol::begin_dataset() ...@@ -833,12 +833,12 @@ int Protocol::begin_dataset()
Not supposed to be frequently called. 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_DATA *data= thd->cur_data;
MYSQL_ROWS **last_row_hook= &data->data; MYSQL_ROWS **last_row_hook= &data->data;
uint count= data->rows; uint count= data->rows;
DBUG_ENTER("Protocol_simple::remove_last_row"); DBUG_ENTER("Protocol_text::remove_last_row");
while (--count) while (--count)
last_row_hook= &(*last_row_hook)->next; last_row_hook= &(*last_row_hook)->next;
...@@ -967,7 +967,7 @@ bool Protocol::write() ...@@ -967,7 +967,7 @@ bool Protocol::write()
return false; return false;
} }
bool Protocol_prep::write() bool Protocol_binary::write()
{ {
MYSQL_ROWS *cur; MYSQL_ROWS *cur;
MYSQL_DATA *data= thd->cur_data; MYSQL_DATA *data= thd->cur_data;
...@@ -1034,7 +1034,7 @@ void net_send_error_packet(THD *thd, uint sql_errno, const char *err) ...@@ -1034,7 +1034,7 @@ void net_send_error_packet(THD *thd, uint sql_errno, const char *err)
} }
void Protocol_simple::prepare_for_resend() void Protocol_text::prepare_for_resend()
{ {
MYSQL_ROWS *cur; MYSQL_ROWS *cur;
MYSQL_DATA *data= thd->cur_data; MYSQL_DATA *data= thd->cur_data;
...@@ -1058,7 +1058,7 @@ void Protocol_simple::prepare_for_resend() ...@@ -1058,7 +1058,7 @@ void Protocol_simple::prepare_for_resend()
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
bool Protocol_simple::store_null() bool Protocol_text::store_null()
{ {
*(next_field++)= NULL; *(next_field++)= NULL;
++next_mysql_field; ++next_mysql_field;
......
...@@ -33,7 +33,7 @@ void net_send_error_packet(THD *thd, uint sql_errno, const char *err); ...@@ -33,7 +33,7 @@ void net_send_error_packet(THD *thd, uint sql_errno, const char *err);
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
bool Protocol::net_store_data(const char *from, uint length) bool Protocol::net_store_data(const char *from, uint length)
#else #else
bool Protocol_prep::net_store_data(const char *from, uint length) bool Protocol_binary::net_store_data(const char *from, uint length)
#endif #endif
{ {
ulong packet_length=packet->length(); ulong packet_length=packet->length();
...@@ -555,7 +555,7 @@ bool Protocol::send_fields(List<Item> *list, uint flags) ...@@ -555,7 +555,7 @@ bool Protocol::send_fields(List<Item> *list, uint flags)
Item *item; Item *item;
char buff[80]; char buff[80];
String tmp((char*) buff,sizeof(buff),&my_charset_bin); String tmp((char*) buff,sizeof(buff),&my_charset_bin);
Protocol_simple prot(thd); Protocol_text prot(thd);
String *local_packet= prot.storage_packet(); String *local_packet= prot.storage_packet();
CHARSET_INFO *thd_charset= thd->variables.character_set_results; CHARSET_INFO *thd_charset= thd->variables.character_set_results;
DBUG_ENTER("send_fields"); DBUG_ENTER("send_fields");
...@@ -758,7 +758,7 @@ bool Protocol::store(I_List<i_string>* str_list) ...@@ -758,7 +758,7 @@ bool Protocol::store(I_List<i_string>* str_list)
****************************************************************************/ ****************************************************************************/
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
void Protocol_simple::prepare_for_resend() void Protocol_text::prepare_for_resend()
{ {
packet->length(0); packet->length(0);
#ifndef DBUG_OFF #ifndef DBUG_OFF
...@@ -766,7 +766,7 @@ void Protocol_simple::prepare_for_resend() ...@@ -766,7 +766,7 @@ void Protocol_simple::prepare_for_resend()
#endif #endif
} }
bool Protocol_simple::store_null() bool Protocol_text::store_null()
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
field_pos++; field_pos++;
...@@ -799,7 +799,7 @@ bool Protocol::store_string_aux(const char *from, uint length, ...@@ -799,7 +799,7 @@ bool Protocol::store_string_aux(const char *from, uint length,
} }
bool Protocol_simple::store(const char *from, uint length, bool Protocol_text::store(const char *from, uint length,
CHARSET_INFO *fromcs, CHARSET_INFO *tocs) CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
...@@ -815,7 +815,7 @@ bool Protocol_simple::store(const char *from, uint length, ...@@ -815,7 +815,7 @@ bool Protocol_simple::store(const char *from, uint length,
} }
bool Protocol_simple::store(const char *from, uint length, bool Protocol_text::store(const char *from, uint length,
CHARSET_INFO *fromcs) CHARSET_INFO *fromcs)
{ {
CHARSET_INFO *tocs= this->thd->variables.character_set_results; CHARSET_INFO *tocs= this->thd->variables.character_set_results;
...@@ -832,7 +832,7 @@ bool Protocol_simple::store(const char *from, uint length, ...@@ -832,7 +832,7 @@ bool Protocol_simple::store(const char *from, uint length,
} }
bool Protocol_simple::store_tiny(longlong from) bool Protocol_text::store_tiny(longlong from)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || field_types[field_pos] == MYSQL_TYPE_TINY); DBUG_ASSERT(field_types == 0 || field_types[field_pos] == MYSQL_TYPE_TINY);
...@@ -844,7 +844,7 @@ bool Protocol_simple::store_tiny(longlong from) ...@@ -844,7 +844,7 @@ bool Protocol_simple::store_tiny(longlong from)
} }
bool Protocol_simple::store_short(longlong from) bool Protocol_text::store_short(longlong from)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -858,7 +858,7 @@ bool Protocol_simple::store_short(longlong from) ...@@ -858,7 +858,7 @@ bool Protocol_simple::store_short(longlong from)
} }
bool Protocol_simple::store_long(longlong from) bool Protocol_text::store_long(longlong from)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -872,7 +872,7 @@ bool Protocol_simple::store_long(longlong from) ...@@ -872,7 +872,7 @@ bool Protocol_simple::store_long(longlong from)
} }
bool Protocol_simple::store_longlong(longlong from, bool unsigned_flag) bool Protocol_text::store_longlong(longlong from, bool unsigned_flag)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -887,7 +887,7 @@ bool Protocol_simple::store_longlong(longlong from, bool unsigned_flag) ...@@ -887,7 +887,7 @@ bool Protocol_simple::store_longlong(longlong from, bool unsigned_flag)
} }
bool Protocol_simple::store_decimal(const my_decimal *d) bool Protocol_text::store_decimal(const my_decimal *d)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -901,7 +901,7 @@ bool Protocol_simple::store_decimal(const my_decimal *d) ...@@ -901,7 +901,7 @@ bool Protocol_simple::store_decimal(const my_decimal *d)
} }
bool Protocol_simple::store(float from, uint32 decimals, String *buffer) bool Protocol_text::store(float from, uint32 decimals, String *buffer)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -913,7 +913,7 @@ bool Protocol_simple::store(float from, uint32 decimals, String *buffer) ...@@ -913,7 +913,7 @@ bool Protocol_simple::store(float from, uint32 decimals, String *buffer)
} }
bool Protocol_simple::store(double from, uint32 decimals, String *buffer) bool Protocol_text::store(double from, uint32 decimals, String *buffer)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -925,7 +925,7 @@ bool Protocol_simple::store(double from, uint32 decimals, String *buffer) ...@@ -925,7 +925,7 @@ bool Protocol_simple::store(double from, uint32 decimals, String *buffer)
} }
bool Protocol_simple::store(Field *field) bool Protocol_text::store(Field *field)
{ {
if (field->is_null()) if (field->is_null())
return store_null(); return store_null();
...@@ -959,7 +959,7 @@ bool Protocol_simple::store(Field *field) ...@@ -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 #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -982,7 +982,7 @@ bool Protocol_simple::store(TIME *tm) ...@@ -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 #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -1001,7 +1001,7 @@ bool Protocol_simple::store_date(TIME *tm) ...@@ -1001,7 +1001,7 @@ bool Protocol_simple::store_date(TIME *tm)
we support 0-6 decimals for time. we support 0-6 decimals for time.
*/ */
bool Protocol_simple::store_time(TIME *tm) bool Protocol_text::store_time(TIME *tm)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -1041,7 +1041,7 @@ bool Protocol_simple::store_time(TIME *tm) ...@@ -1041,7 +1041,7 @@ bool Protocol_simple::store_time(TIME *tm)
[..]..[[length]data] data [..]..[[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); Protocol::prepare_for_send(item_list);
bit_fields= (field_count+9)/8; bit_fields= (field_count+9)/8;
...@@ -1052,7 +1052,7 @@ bool Protocol_prep::prepare_for_send(List<Item> *item_list) ...@@ -1052,7 +1052,7 @@ bool Protocol_prep::prepare_for_send(List<Item> *item_list)
} }
void Protocol_prep::prepare_for_resend() void Protocol_binary::prepare_for_resend()
{ {
packet->length(bit_fields+1); packet->length(bit_fields+1);
bzero((char*) packet->ptr(), 1+bit_fields); bzero((char*) packet->ptr(), 1+bit_fields);
...@@ -1060,21 +1060,21 @@ void Protocol_prep::prepare_for_resend() ...@@ -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; CHARSET_INFO *tocs= thd->variables.character_set_results;
field_pos++; field_pos++;
return store_string_aux(from, length, fromcs, tocs); 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) CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
{ {
field_pos++; field_pos++;
return store_string_aux(from, length, fromcs, tocs); 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)); uint offset= (field_pos+2)/8+1, bit= (1 << ((field_pos+2) & 7));
/* Room for this as it's allocated in prepare_for_send */ /* Room for this as it's allocated in prepare_for_send */
...@@ -1085,7 +1085,7 @@ bool Protocol_prep::store_null() ...@@ -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]; char buff[1];
field_pos++; field_pos++;
...@@ -1094,7 +1094,7 @@ bool Protocol_prep::store_tiny(longlong from) ...@@ -1094,7 +1094,7 @@ bool Protocol_prep::store_tiny(longlong from)
} }
bool Protocol_prep::store_short(longlong from) bool Protocol_binary::store_short(longlong from)
{ {
field_pos++; field_pos++;
char *to= packet->prep_append(2, PACKET_BUFFER_EXTRA_ALLOC); char *to= packet->prep_append(2, PACKET_BUFFER_EXTRA_ALLOC);
...@@ -1105,7 +1105,7 @@ bool Protocol_prep::store_short(longlong from) ...@@ -1105,7 +1105,7 @@ bool Protocol_prep::store_short(longlong from)
} }
bool Protocol_prep::store_long(longlong from) bool Protocol_binary::store_long(longlong from)
{ {
field_pos++; field_pos++;
char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC); char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC);
...@@ -1116,7 +1116,7 @@ bool Protocol_prep::store_long(longlong from) ...@@ -1116,7 +1116,7 @@ bool Protocol_prep::store_long(longlong from)
} }
bool Protocol_prep::store_longlong(longlong from, bool unsigned_flag) bool Protocol_binary::store_longlong(longlong from, bool unsigned_flag)
{ {
field_pos++; field_pos++;
char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC); char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC);
...@@ -1126,7 +1126,7 @@ bool Protocol_prep::store_longlong(longlong from, bool unsigned_flag) ...@@ -1126,7 +1126,7 @@ bool Protocol_prep::store_longlong(longlong from, bool unsigned_flag)
return 0; return 0;
} }
bool Protocol_prep::store_decimal(const my_decimal *d) bool Protocol_binary::store_decimal(const my_decimal *d)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
...@@ -1139,7 +1139,7 @@ bool Protocol_prep::store_decimal(const my_decimal *d) ...@@ -1139,7 +1139,7 @@ bool Protocol_prep::store_decimal(const my_decimal *d)
return store(str.ptr(), str.length(), str.charset()); 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++; field_pos++;
char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC); char *to= packet->prep_append(4, PACKET_BUFFER_EXTRA_ALLOC);
...@@ -1150,7 +1150,7 @@ bool Protocol_prep::store(float from, uint32 decimals, String *buffer) ...@@ -1150,7 +1150,7 @@ bool Protocol_prep::store(float from, uint32 decimals, String *buffer)
} }
bool Protocol_prep::store(double from, uint32 decimals, String *buffer) bool Protocol_binary::store(double from, uint32 decimals, String *buffer)
{ {
field_pos++; field_pos++;
char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC); char *to= packet->prep_append(8, PACKET_BUFFER_EXTRA_ALLOC);
...@@ -1161,7 +1161,7 @@ bool Protocol_prep::store(double from, uint32 decimals, String *buffer) ...@@ -1161,7 +1161,7 @@ bool Protocol_prep::store(double from, uint32 decimals, String *buffer)
} }
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 We should not increment field_pos here as send_binary() will call another
...@@ -1173,7 +1173,7 @@ bool Protocol_prep::store(Field *field) ...@@ -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; char buff[12],*pos;
uint length; uint length;
...@@ -1199,15 +1199,15 @@ bool Protocol_prep::store(TIME *tm) ...@@ -1199,15 +1199,15 @@ bool Protocol_prep::store(TIME *tm)
return packet->append(buff, length+1, PACKET_BUFFER_EXTRA_ALLOC); 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->hour= tm->minute= tm->second=0;
tm->second_part= 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; char buff[13], *pos;
uint length; uint length;
......
...@@ -101,11 +101,11 @@ class Protocol ...@@ -101,11 +101,11 @@ class Protocol
/* Class used for the old (MySQL 4.0 protocol) */ /* Class used for the old (MySQL 4.0 protocol) */
class Protocol_simple :public Protocol class Protocol_text :public Protocol
{ {
public: public:
Protocol_simple() {} Protocol_text() {}
Protocol_simple(THD *thd_arg) :Protocol(thd_arg) {} Protocol_text(THD *thd_arg) :Protocol(thd_arg) {}
virtual void prepare_for_resend(); virtual void prepare_for_resend();
virtual bool store_null(); virtual bool store_null();
virtual bool store_tiny(longlong from); virtual bool store_tiny(longlong from);
...@@ -128,13 +128,13 @@ class Protocol_simple :public Protocol ...@@ -128,13 +128,13 @@ class Protocol_simple :public Protocol
}; };
class Protocol_prep :public Protocol class Protocol_binary :public Protocol
{ {
private: private:
uint bit_fields; uint bit_fields;
public: public:
Protocol_prep() {} Protocol_binary() {}
Protocol_prep(THD *thd_arg) :Protocol(thd_arg) {} Protocol_binary(THD *thd_arg) :Protocol(thd_arg) {}
virtual bool prepare_for_send(List<Item> *item_list); virtual bool prepare_for_send(List<Item> *item_list);
virtual void prepare_for_resend(); virtual void prepare_for_resend();
#ifdef EMBEDDED_LIBRARY #ifdef EMBEDDED_LIBRARY
......
...@@ -2730,8 +2730,8 @@ int set_var_collation_client::update(THD *thd) ...@@ -2730,8 +2730,8 @@ int set_var_collation_client::update(THD *thd)
thd->variables.character_set_results= character_set_results; thd->variables.character_set_results= character_set_results;
thd->variables.collation_connection= collation_connection; thd->variables.collation_connection= collation_connection;
thd->update_charset(); thd->update_charset();
thd->protocol_simple.init(thd); thd->protocol_text.init(thd);
thd->protocol_prep.init(thd); thd->protocol_binary.init(thd);
return 0; return 0;
} }
......
...@@ -300,9 +300,9 @@ THD::THD() ...@@ -300,9 +300,9 @@ THD::THD()
bzero((char*) &user_var_events, sizeof(user_var_events)); bzero((char*) &user_var_events, sizeof(user_var_events));
/* Protocol */ /* Protocol */
protocol= &protocol_simple; // Default protocol protocol= &protocol_text; // Default protocol
protocol_simple.init(this); protocol_text.init(this);
protocol_prep.init(this); protocol_binary.init(this);
tablespace_op=FALSE; tablespace_op=FALSE;
ulong tmp=sql_rnd_with_mutex(); ulong tmp=sql_rnd_with_mutex();
......
...@@ -853,8 +853,8 @@ class THD :public Statement, ...@@ -853,8 +853,8 @@ class THD :public Statement,
NET net; // client connection descriptor NET net; // client connection descriptor
MEM_ROOT warn_root; // For warnings and errors MEM_ROOT warn_root; // For warnings and errors
Protocol *protocol; // Current protocol Protocol *protocol; // Current protocol
Protocol_simple protocol_simple; // Normal protocol Protocol_text protocol_text; // Normal protocol
Protocol_prep protocol_prep; // Binary protocol Protocol_binary protocol_binary; // Binary protocol
HASH user_vars; // hash for user variables HASH user_vars; // hash for user variables
String packet; // dynamic buffer for network I/O String packet; // dynamic buffer for network I/O
String convert_buffer; // buffer for charset conversions String convert_buffer; // buffer for charset conversions
......
...@@ -83,11 +83,11 @@ When one supplies long data for a placeholder: ...@@ -83,11 +83,11 @@ When one supplies long data for a placeholder:
/* A result class used to send cursor rows using the binary protocol. */ /* 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: 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_fields(List<Item> &list, uint flags);
virtual bool send_data(List<Item> &items); virtual bool send_data(List<Item> &items);
virtual bool send_eof(); virtual bool send_eof();
...@@ -112,7 +112,7 @@ class Prepared_statement: public Statement ...@@ -112,7 +112,7 @@ class Prepared_statement: public Statement
}; };
THD *thd; THD *thd;
Select_fetch_protocol_prep result; Select_fetch_protocol_binary result;
Protocol *protocol; Protocol *protocol;
Item_param **param_array; Item_param **param_array;
uint param_count; uint param_count;
...@@ -224,7 +224,7 @@ static bool send_prep_stmt(Prepared_statement *stmt, uint columns) ...@@ -224,7 +224,7 @@ static bool send_prep_stmt(Prepared_statement *stmt, uint columns)
*/ */
DBUG_RETURN(my_net_write(net, buff, sizeof(buff)) || DBUG_RETURN(my_net_write(net, buff, sizeof(buff)) ||
(stmt->param_count && (stmt->param_count &&
stmt->thd->protocol_simple.send_fields((List<Item> *) stmt->thd->protocol_text.send_fields((List<Item> *)
&stmt->lex->param_list, &stmt->lex->param_list,
Protocol::SEND_EOF))); Protocol::SEND_EOF)));
} }
...@@ -1882,7 +1882,7 @@ void mysql_stmt_prepare(THD *thd, const char *packet, uint packet_length) ...@@ -1882,7 +1882,7 @@ void mysql_stmt_prepare(THD *thd, const char *packet, uint packet_length)
/* First of all clear possible warnings from the previous command */ /* First of all clear possible warnings from the previous command */
mysql_reset_thd_for_next_command(thd); 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 */ DBUG_VOID_RETURN; /* out of memory: error is set in Sql_alloc */
if (thd->stmt_map.insert(thd, stmt)) if (thd->stmt_map.insert(thd, stmt))
...@@ -2054,7 +2054,7 @@ void mysql_sql_stmt_prepare(THD *thd) ...@@ -2054,7 +2054,7 @@ void mysql_sql_stmt_prepare(THD *thd)
const char *query; const char *query;
uint query_len; uint query_len;
DBUG_ENTER("mysql_sql_stmt_prepare"); 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))) if ((stmt= (Prepared_statement*) thd->stmt_map.find_by_name(name)))
{ {
...@@ -2067,7 +2067,7 @@ void mysql_sql_stmt_prepare(THD *thd) ...@@ -2067,7 +2067,7 @@ void mysql_sql_stmt_prepare(THD *thd)
} }
if (! (query= get_dynamic_sql_string(lex, &query_len)) || 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 */ DBUG_VOID_RETURN; /* out of memory */
} }
...@@ -2617,14 +2617,14 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) ...@@ -2617,14 +2617,14 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
/*************************************************************************** /***************************************************************************
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) :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; bool rc;
Protocol *save_protocol= thd->protocol; Protocol *save_protocol= thd->protocol;
...@@ -2642,7 +2642,7 @@ bool Select_fetch_protocol_prep::send_fields(List<Item> &list, uint flags) ...@@ -2642,7 +2642,7 @@ bool Select_fetch_protocol_prep::send_fields(List<Item> &list, uint flags)
return rc; return rc;
} }
bool Select_fetch_protocol_prep::send_eof() bool Select_fetch_protocol_binary::send_eof()
{ {
Protocol *save_protocol= thd->protocol; Protocol *save_protocol= thd->protocol;
...@@ -2654,7 +2654,7 @@ bool Select_fetch_protocol_prep::send_eof() ...@@ -2654,7 +2654,7 @@ bool Select_fetch_protocol_prep::send_eof()
bool bool
Select_fetch_protocol_prep::send_data(List<Item> &fields) Select_fetch_protocol_binary::send_data(List<Item> &fields)
{ {
Protocol *save_protocol= thd->protocol; Protocol *save_protocol= thd->protocol;
bool rc; bool rc;
...@@ -2998,7 +2998,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) ...@@ -2998,7 +2998,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
mysql_open_cursor(thd, (uint) ALWAYS_MATERIALIZED_CURSOR, mysql_open_cursor(thd, (uint) ALWAYS_MATERIALIZED_CURSOR,
&result, &cursor) : &result, &cursor) :
mysql_execute_command(thd)); 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 */ /* Assert that if an error, no cursor is open */
DBUG_ASSERT(! (error && cursor)); DBUG_ASSERT(! (error && cursor));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment