~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_parse.cc

  • Committer: Brian Aker
  • Date: 2010-11-15 05:43:10 UTC
  • mto: (1932.2.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 1934.
  • Revision ID: brian@tangent.org-20101115054310-btag01iyploogsf3
Fix issue where session info might not be correct.

Show diffs side-by-side

added added

removed removed

Lines of Context:
225
225
                        session->thread_id,
226
226
                        const_cast<const char *>(session->db.empty() ? "" : session->db.c_str()));
227
227
 
228
 
    plugin::QueryRewriter::rewriteQuery(session->db, session->query);
229
 
    mysql_parse(session, session->query.c_str(), session->query.length());
 
228
    plugin::QueryRewriter::rewriteQuery(session->getSchema(), *session->getQueryString());
 
229
    mysql_parse(session, session->getQueryString()->c_str(), session->getQueryString()->length());
230
230
 
231
231
    break;
232
232
  }
320
320
  /* Store temp state for processlist */
321
321
  session->set_proc_info("cleaning up");
322
322
  session->command= COM_SLEEP;
323
 
  memset(session->process_list_info, 0, PROCESS_LIST_WIDTH);
324
 
  session->query.clear();
 
323
  session->resetQueryString();
325
324
 
326
325
  session->set_proc_info(NULL);
327
326
  session->mem_root->free_root(MYF(memory::KEEP_PREALLOC));
432
431
    true        Error
433
432
*/
434
433
 
435
 
static int
436
 
mysql_execute_command(Session *session)
 
434
static int mysql_execute_command(Session *session)
437
435
{
438
436
  bool res= false;
439
437
  LEX  *lex= session->lex;
441
439
  Select_Lex *select_lex= &lex->select_lex;
442
440
  /* list of all tables in query */
443
441
  TableList *all_tables;
444
 
  /* A peek into the query string */
445
 
  size_t proc_info_len= session->query.length() > PROCESS_LIST_WIDTH ?
446
 
                        PROCESS_LIST_WIDTH : session->query.length();
447
 
 
448
 
  memcpy(session->process_list_info, session->query.c_str(), proc_info_len);
449
 
  session->process_list_info[proc_info_len]= '\0';
450
442
 
451
443
  /*
452
444
    In many cases first table of main Select_Lex have special meaning =>