Bug #1064: SHOW CREATE TABLE: avoid allocations for simple tables, old client compatibility
sql/item.h: fixups sql/sql_show.cc: avoid allocations for simple tables old client compatibility
This commit is contained in:
parent
8b2bc4362c
commit
b8de463ea1
@ -275,6 +275,7 @@ class Item_empty_string :public Item_string
|
||||
public:
|
||||
Item_empty_string(const char *header,uint length) :Item_string("",0)
|
||||
{ name=(char*) header; max_length=length;}
|
||||
void make_field(Send_field *field);
|
||||
};
|
||||
|
||||
class Item_varbinary :public Item
|
||||
|
@ -564,7 +564,8 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
String packet;
|
||||
char buff[1024];
|
||||
String packet(buff,sizeof(buff));
|
||||
packet.length(0);
|
||||
net_store_data(&packet, table->table_name);
|
||||
/*
|
||||
@ -597,7 +598,8 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
|
||||
|
||||
List<Item> field_list;
|
||||
field_list.push_back(new Item_empty_string("Table",NAME_LEN));
|
||||
field_list.push_back(new Item_empty_string("Create Table",packet.length()));
|
||||
field_list.push_back(new Item_empty_string("Create Table",
|
||||
max(packet.length(),1024))); // 1024 is for not to confuse old clients
|
||||
|
||||
if (send_fields(thd,field_list,1))
|
||||
DBUG_RETURN(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user