/**
  * Pass the given statement or result to the debugger.
  *
  * @param null|ResultDelegator $result The result (optional).
  *
  * @return void
  */
 protected function passToDebugger($result = null)
 {
     $arrData['query'] = $this->statement->strQuery;
     $arrData['realquery'] = $this->realQuery;
     $arrData['params'] = $this->parameters;
     $arrData['timeStart'] = $this->timeStart;
     $arrData['timeStop'] = $this->timeStop;
     $arrData['duration'] = $this->timeStop - $this->timeStart;
     if ($result === null || strncasecmp($this->statement->strQuery, 'SELECT', 6) !== 0) {
         if (strncasecmp($this->statement->strQuery, 'SHOW', 4) === 0) {
             $arrData['return_count'] = $this->statement->affectedRows;
             $arrData['returned'] = sprintf('%s row(s) returned', $this->statement->affectedRows);
         } else {
             $arrData['affected_count'] = $this->affectedRows;
             $arrData['affected'] = sprintf('%d row(s) affected', $this->statement->affectedRows);
         }
     } else {
         if (($arrExplain = $this->statement->explain()) != false) {
             $arrData['explain'] = $arrExplain;
         }
         $arrData['return_count'] = $result->numRows;
         $arrData['returned'] = sprintf('%s row(s) returned', $result->numRows);
     }
     $this->database->addStatement($arrData);
 }