Commit b8de463e authored by unknown's avatar unknown
Browse files

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
parent 8b2bc436
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+4 −2
Original line number Diff line number Diff line
@@ -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);