~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/show.cc

  • Committer: Brian Aker
  • Date: 2010-10-09 00:49:33 UTC
  • mfrom: (1812.5.8 staging)
  • Revision ID: brian@tangent.org-20101009004933-tehugnkubtzp6uy4
Merge in changes for show create table.

Show diffs side-by-side

added added

removed removed

Lines of Context:
118
118
  return (*str != '\0');
119
119
}
120
120
 
121
 
 
122
 
bool drizzled_show_create(Session *session, TableList *table_list, bool is_if_not_exists)
123
 
{
124
 
  char buff[2048];
125
 
  String buffer(buff, sizeof(buff), system_charset_info);
126
 
 
127
 
  /* Only one table for now, but VIEW can involve several tables */
128
 
  if (session->openTables(table_list))
129
 
  {
130
 
    if (session->is_error())
131
 
      return true;
132
 
 
133
 
    /*
134
 
      Clear all messages with 'error' level status and
135
 
      issue a warning with 'warning' level status in
136
 
      case of invalid view and last error is ER_VIEW_INVALID
137
 
    */
138
 
    drizzle_reset_errors(session, true);
139
 
    session->clear_error();
140
 
  }
141
 
 
142
 
  buffer.length(0);
143
 
 
144
 
  if (store_create_info(table_list, &buffer, is_if_not_exists))
145
 
    return true;
146
 
 
147
 
  List<Item> field_list;
148
 
  {
149
 
    field_list.push_back(new Item_empty_string("Table",NAME_CHAR_LEN));
150
 
    // 1024 is for not to confuse old clients
151
 
    field_list.push_back(new Item_empty_string("Create Table",
152
 
                                               max(buffer.length(),(size_t)1024)));
153
 
  }
154
 
 
155
 
  if (session->client->sendFields(&field_list))
156
 
    return true;
157
 
  {
158
 
    session->client->store(table_list->table->getAlias());
159
 
  }
160
 
 
161
 
  session->client->store(buffer.ptr(), buffer.length());
162
 
 
163
 
  if (session->client->flush())
164
 
    return true;
165
 
 
166
 
  session->my_eof();
167
 
  return false;
168
 
}
169
 
 
170
121
/**
171
122
  Get a CREATE statement for a given database.
172
123