~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/show.cc

  • Committer: Brian Aker
  • Date: 2009-09-22 07:35:28 UTC
  • mfrom: (971.6.10 eday-dev)
  • Revision ID: brian@gaz-20090922073528-xgm634aomuflqxl3
MergeĀ Eric

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
#include "drizzled/plugin/registry.h"
43
43
#include <drizzled/info_schema.h>
44
44
#include <drizzled/message/schema.pb.h>
 
45
#include <drizzled/plugin/client.h>
45
46
#include <mysys/cached_directory.h>
46
47
#include <sys/stat.h>
47
48
 
213
214
 
214
215
bool drizzled_show_create(Session *session, TableList *table_list)
215
216
{
216
 
  plugin::Protocol *protocol= session->protocol;
217
217
  char buff[2048];
218
218
  String buffer(buff, sizeof(buff), system_charset_info);
219
219
 
245
245
                                               max(buffer.length(),(uint32_t)1024)));
246
246
  }
247
247
 
248
 
  if (protocol->sendFields(&field_list))
 
248
  if (session->client->sendFields(&field_list))
249
249
    return true;
250
 
  protocol->prepareForResend();
251
250
  {
252
251
    if (table_list->schema_table)
253
 
      protocol->store(table_list->schema_table->getTableName().c_str());
 
252
      session->client->store(table_list->schema_table->getTableName().c_str());
254
253
    else
255
 
      protocol->store(table_list->table->alias);
 
254
      session->client->store(table_list->table->alias);
256
255
  }
257
256
 
258
 
  protocol->store(buffer.ptr(), buffer.length());
 
257
  session->client->store(buffer.ptr(), buffer.length());
259
258
 
260
 
  if (protocol->write())
 
259
  if (session->client->flush())
261
260
    return true;
262
261
 
263
262
  session->my_eof();
326
325
{
327
326
  char buff[2048];
328
327
  String buffer(buff, sizeof(buff), system_charset_info);
329
 
  plugin::Protocol *protocol= session->protocol;
330
328
 
331
329
  if (store_db_create_info(dbname, &buffer, if_not_exists))
332
330
  {
342
340
  field_list.push_back(new Item_empty_string("Database",NAME_CHAR_LEN));
343
341
  field_list.push_back(new Item_empty_string("Create Database",1024));
344
342
 
345
 
  if (protocol->sendFields(&field_list))
 
343
  if (session->client->sendFields(&field_list))
346
344
    return true;
347
345
 
348
 
  protocol->prepareForResend();
349
 
  protocol->store(dbname, strlen(dbname));
350
 
  protocol->store(buffer.ptr(), buffer.length());
 
346
  session->client->store(dbname, strlen(dbname));
 
347
  session->client->store(buffer.ptr(), buffer.length());
351
348
 
352
 
  if (protocol->write())
 
349
  if (session->client->flush())
353
350
    return true;
354
351
  session->my_eof();
355
352
  return false;
758
755
  Item *field;
759
756
  List<Item> field_list;
760
757
  I_List<thread_info> thread_infos;
761
 
  plugin::Protocol *protocol= session->protocol;
762
758
 
763
759
  field_list.push_back(new Item_int("Id", 0, MY_INT32_NUM_DECIMAL_DIGITS));
764
760
  field_list.push_back(new Item_empty_string("User",16));
771
767
  field->maybe_null= true;
772
768
  field_list.push_back(field=new Item_empty_string("Info", PROCESS_LIST_WIDTH));
773
769
  field->maybe_null= true;
774
 
  if (protocol->sendFields(&field_list))
 
770
  if (session->client->sendFields(&field_list))
775
771
    return;
776
772
 
777
773
  pthread_mutex_lock(&LOCK_thread_count); // For unlink from list
783
779
      tmp= *it;
784
780
      Security_context *tmp_sctx= &tmp->security_ctx;
785
781
      struct st_my_thread_var *mysys_var;
786
 
      if (tmp->protocol->isConnected() && (!user || (tmp_sctx->user.c_str() && !strcmp(tmp_sctx->user.c_str(), user))))
 
782
      if (tmp->client->isConnected() && (!user || (tmp_sctx->user.c_str() && !strcmp(tmp_sctx->user.c_str(), user))))
787
783
      {
788
784
        thread_info *session_info= new thread_info;
789
785
 
801
797
        else
802
798
          session_info->proc_info= command_name[session_info->command].str;
803
799
 
804
 
        session_info->state_info= (char*) (tmp->protocol->isWriting() ?
 
800
        session_info->state_info= (char*) (tmp->client->isWriting() ?
805
801
                                           "Writing to net" :
806
 
                                           tmp->protocol->isReading() ?
 
802
                                           tmp->client->isReading() ?
807
803
                                           (session_info->command == COM_SLEEP ?
808
804
                                            NULL : "Reading from net") :
809
805
                                       tmp->get_proc_info() ? tmp->get_proc_info() :
827
823
  time_t now= time(NULL);
828
824
  while ((session_info=thread_infos.get()))
829
825
  {
830
 
    protocol->prepareForResend();
831
 
    protocol->store((uint64_t) session_info->thread_id);
832
 
    protocol->store(session_info->user);
833
 
    protocol->store(session_info->host);
834
 
    protocol->store(session_info->db);
835
 
    protocol->store(session_info->proc_info);
 
826
    session->client->store((uint64_t) session_info->thread_id);
 
827
    session->client->store(session_info->user);
 
828
    session->client->store(session_info->host);
 
829
    session->client->store(session_info->db);
 
830
    session->client->store(session_info->proc_info);
836
831
 
837
832
    if (session_info->start_time)
838
 
      protocol->store((uint32_t) (now - session_info->start_time));
 
833
      session->client->store((uint32_t) (now - session_info->start_time));
839
834
    else
840
 
      protocol->store();
841
 
 
842
 
    protocol->store(session_info->state_info);
843
 
    protocol->store(session_info->query);
844
 
 
845
 
    if (protocol->write())
 
835
      session->client->store();
 
836
 
 
837
    session->client->store(session_info->state_info);
 
838
    session->client->store(session_info->query);
 
839
 
 
840
    if (session->client->flush())
846
841
      break; /* purecov: inspected */
847
842
  }
848
843
  session->my_eof();