~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/logging_stats/stats_schema.cc

  • Committer: Joe Daly
  • Date: 2010-06-25 03:22:55 UTC
  • mto: This revision was merged to the branch mainline in revision 1656.
  • Revision ID: skinny.moey@gmail.com-20100625032255-bzj84xre67qldfpi
initial user stats impl

Show diffs side-by-side

added added

removed removed

Lines of Context:
359
359
 
360
360
  return false;
361
361
}
 
362
 
 
363
CumulativeUserStatsTool::CumulativeUserStatsTool(LoggingStats *logging_stats) :
 
364
  plugin::TableFunction("DATA_DICTIONARY", "CUMULATIVE_USER_STATS")
 
365
{
 
366
  outer_logging_stats= logging_stats;
 
367
 
 
368
  add_field("USER");
 
369
  add_field("BYTES_RECEIVED");
 
370
  add_field("BYTES_SENT");
 
371
  add_field("DENIED_CONNECTIONS");
 
372
  add_field("LOST_CONNECTIONS");
 
373
  add_field("ACCESS_DENIED");
 
374
  add_field("CONNECTED_TIME_SEC");
 
375
  add_field("EXECUTION_TIME_NSEC");
 
376
}
 
377
 
 
378
CumulativeUserStatsTool::Generator::Generator(Field **arg, LoggingStats *logging_stats) :
 
379
  plugin::TableFunction::Generator(arg)
 
380
{
 
381
  inner_logging_stats= logging_stats;
 
382
  record_number= 0;
 
383
 
 
384
  if (inner_logging_stats->isEnabled())
 
385
  {
 
386
    last_valid_index= inner_logging_stats->getCumulativeStats()->getCumulativeStatsLastValidIndex();
 
387
  }
 
388
  else
 
389
  {
 
390
    last_valid_index= INVALID_INDEX;
 
391
  }
 
392
}
 
393
 
 
394
bool CumulativeUserStatsTool::Generator::populate()
 
395
{
 
396
  if ((record_number > last_valid_index) || (last_valid_index == INVALID_INDEX))
 
397
  {
 
398
    return false;
 
399
  }
 
400
 
 
401
  while (record_number <= last_valid_index)
 
402
  {
 
403
    ScoreboardSlot *cumulative_scoreboard_slot=
 
404
      inner_logging_stats->getCumulativeStats()->getCumulativeStatsByUserVector()->at(record_number);
 
405
 
 
406
    if (cumulative_scoreboard_slot->isInUse())
 
407
    {
 
408
      StatusVars *status_vars= cumulative_scoreboard_slot->getStatusVars();
 
409
      push(cumulative_scoreboard_slot->getUser());
 
410
 
 
411
      push(status_vars->getStatusVarCounters()->bytes_received);
 
412
      push(status_vars->getStatusVarCounters()->bytes_sent);
 
413
      push(status_vars->getStatusVarCounters()->aborted_connects);
 
414
      push(status_vars->getStatusVarCounters()->aborted_threads);
 
415
      push(status_vars->getStatusVarCounters()->access_denied);
 
416
      push(status_vars->getStatusVarCounters()->connection_time);
 
417
      push(status_vars->getStatusVarCounters()->execution_time_nsec);
 
418
      ++record_number;
 
419
      return true;
 
420
    }
 
421
    else
 
422
    {
 
423
      ++record_number;
 
424
    }
 
425
  }
 
426
 
 
427
  return false;
 
428
}