public function seek($row)
    {

        switch ($this->mode) {

            case "mysql":
                $this->result->data_seek($row);
                break;

            case "postgres":
            case "redshift":
                pg_result_seek($this->result, $row);
                break;

            case "odbc":
            case "mssqlsrv":
                # The odbc driver doesn't support seeking, so we fetch specific rows in getNextRow(), and here all we need to do is set the current position instance variable
                break;

            case "sqlite":
                $this->result->reset();
                for ($i = 0; $i < $row; $i++) {
                    $this->result->fetchArray();
                }
                break;

            case "mssql":
                mssql_data_seek($this->result, $row);
                break;
        }

        $this->position = $row;
    }