#!/usr/sbin/dtrace -s
/* 
 *   Query Cache Viewer; benr@joyent.com
 */ 
#pragma D option quiet

BEGIN
{ 
        printf("Waiting for queries... hit ^c to quit.n");
}
pid$target:mysqld:*dispatch_command*:entry
{
        self->query = copyinstr(arg2);
        self->start = timestamp;
}
pid$target:mysqld:*send_result_to_client*:entry
{
        self->cache = "Yes";
}
pid$target:mysqld:*do_select*:entry
{
        self->cache = "No";
}
pid$target:mysqld:*dispatch_command*:return
{
        this->end = timestamp;
        this->elapsed = (this->end - self->start)/1000000;
        printf("From Query Cache?: %s in %d ms t| Query: %sn", self->cache, this->elapsed, self->query);
        self->start = 0;
        self->query = 0;        
}

