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:
|
public:
|
||||||
Item_empty_string(const char *header,uint length) :Item_string("",0)
|
Item_empty_string(const char *header,uint length) :Item_string("",0)
|
||||||
{ name=(char*) header; max_length=length;}
|
{ name=(char*) header; max_length=length;}
|
||||||
|
void make_field(Send_field *field);
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_varbinary :public Item
|
class Item_varbinary :public Item
|
||||||
|
@ -564,7 +564,8 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
|
|||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
String packet;
|
char buff[1024];
|
||||||
|
String packet(buff,sizeof(buff));
|
||||||
packet.length(0);
|
packet.length(0);
|
||||||
net_store_data(&packet, table->table_name);
|
net_store_data(&packet, table->table_name);
|
||||||
/*
|
/*
|
||||||
@ -597,7 +598,8 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
|
|||||||
|
|
||||||
List<Item> field_list;
|
List<Item> field_list;
|
||||||
field_list.push_back(new Item_empty_string("Table",NAME_LEN));
|
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))
|
if (send_fields(thd,field_list,1))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user