21 #include "my_global.h" 
   22 #include "my_pthread.h" 
   30 THR_LOCK table_esms_by_account_by_event_name::m_table_lock;
 
   35     { C_STRING_WITH_LEN(
"USER") },
 
   36     { C_STRING_WITH_LEN(
"char(16)") },
 
   40     { C_STRING_WITH_LEN(
"HOST") },
 
   41     { C_STRING_WITH_LEN(
"char(60)") },
 
   45     { C_STRING_WITH_LEN(
"EVENT_NAME") },
 
   46     { C_STRING_WITH_LEN(
"varchar(128)") },
 
   50     { C_STRING_WITH_LEN(
"COUNT_STAR") },
 
   51     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   55     { C_STRING_WITH_LEN(
"SUM_TIMER_WAIT") },
 
   56     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   60     { C_STRING_WITH_LEN(
"MIN_TIMER_WAIT") },
 
   61     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   65     { C_STRING_WITH_LEN(
"AVG_TIMER_WAIT") },
 
   66     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   70     { C_STRING_WITH_LEN(
"MAX_TIMER_WAIT") },
 
   71     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   75     { C_STRING_WITH_LEN(
"SUM_LOCK_TIME") },
 
   76     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   80     { C_STRING_WITH_LEN(
"SUM_ERRORS") },
 
   81     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   85     { C_STRING_WITH_LEN(
"SUM_WARNINGS") },
 
   86     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   90     { C_STRING_WITH_LEN(
"SUM_ROWS_AFFECTED") },
 
   91     { C_STRING_WITH_LEN(
"bigint(20)") },
 
   95     { C_STRING_WITH_LEN(
"SUM_ROWS_SENT") },
 
   96     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  100     { C_STRING_WITH_LEN(
"SUM_ROWS_EXAMINED") },
 
  101     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  105     { C_STRING_WITH_LEN(
"SUM_CREATED_TMP_DISK_TABLES") },
 
  106     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  110     { C_STRING_WITH_LEN(
"SUM_CREATED_TMP_TABLES") },
 
  111     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  115     { C_STRING_WITH_LEN(
"SUM_SELECT_FULL_JOIN") },
 
  116     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  120     { C_STRING_WITH_LEN(
"SUM_SELECT_FULL_RANGE_JOIN") },
 
  121     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  125     { C_STRING_WITH_LEN(
"SUM_SELECT_RANGE") },
 
  126     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  130     { C_STRING_WITH_LEN(
"SUM_SELECT_RANGE_CHECK") },
 
  131     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  135     { C_STRING_WITH_LEN(
"SUM_SELECT_SCAN") },
 
  136     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  140     { C_STRING_WITH_LEN(
"SUM_SORT_MERGE_PASSES") },
 
  141     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  145     { C_STRING_WITH_LEN(
"SUM_SORT_RANGE") },
 
  146     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  150     { C_STRING_WITH_LEN(
"SUM_SORT_ROWS") },
 
  151     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  155     { C_STRING_WITH_LEN(
"SUM_SORT_SCAN") },
 
  156     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  160     { C_STRING_WITH_LEN(
"SUM_NO_INDEX_USED") },
 
  161     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  165     { C_STRING_WITH_LEN(
"SUM_NO_GOOD_INDEX_USED") },
 
  166     { C_STRING_WITH_LEN(
"bigint(20)") },
 
  172 table_esms_by_account_by_event_name::m_field_def=
 
  178   { C_STRING_WITH_LEN(
"events_statements_summary_by_account_by_event_name") },
 
  180   table_esms_by_account_by_event_name::create,
 
  182   table_esms_by_account_by_event_name::delete_all_rows,
 
  192 table_esms_by_account_by_event_name::create(
void)
 
  198 table_esms_by_account_by_event_name::delete_all_rows(
void)
 
  205 table_esms_by_account_by_event_name::table_esms_by_account_by_event_name()
 
  207     m_row_exists(false), m_pos(), m_next_pos()
 
  227   for (m_pos.
set_at(&m_next_pos);
 
  228        m_pos.has_more_account();
 
  229        m_pos.next_account())
 
  231     account= &account_array[m_pos.
m_index_1];
 
  237         make_row(account, statement_class);
 
  244   return HA_ERR_END_OF_FILE;
 
  254   DBUG_ASSERT(m_pos.
m_index_1 < account_max);
 
  256   account= &account_array[m_pos.
m_index_1];
 
  258     return HA_ERR_RECORD_DELETED;
 
  263     make_row(account, statement_class);
 
  267   return HA_ERR_RECORD_DELETED;
 
  270 void table_esms_by_account_by_event_name
 
  299   if (unlikely(! m_row_exists))
 
  300     return HA_ERR_RECORD_DELETED;
 
  303   DBUG_ASSERT(table->s->null_bytes == 1);
 
  306   for (; (f= *fields) ; fields++)
 
  308     if (read_all || bitmap_is_set(table->read_set, f->field_index))
 
  310       switch(f->field_index)
 
  314         m_row.m_account.set_field(f->field_index, f);
 
  317         m_row.m_event_name.set_field(f);
 
  320         m_row.m_stat.set_field(f->field_index - 3, f);