public function fetchAll($mode = null, $complement_info = null, array $ctor_args = array()) {
        $fetchmode = is_null($mode) ? $this->fetchMode : new FetchMode($mode, $complement_info, $ctor_args);
        /* @var $fetchmode FetchMode */
        $rows = array();
        foreach($this->prefetched as $row) {
            if($fetchmode->hasMode(DB::FETCHALL_KEY_PAIR)) {
                $rows[array_shift($row)] = array_shift($row);
            } elseif($fetchmode->hasMode(DB::FETCHALL_UNIQUE)) {
                $rows[array_shift($row)] = $this->parseFetched($rows, $fetchmode);
            } else {
                $rows[] = $this->parseFetched($rows, $fetchmode);
            }
        }
        return $rows;
    }