Commit 7f1ffcc4 authored by serg@serg.mylan's avatar serg@serg.mylan

Bug #1064: SHOW CREATE TABLE: avoid allocations for simple tables, old client compatibility

parent 828789a4
......@@ -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);
......
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