final public function plainQuery($query, $fetch = null)
    {
        $this->forcedConnect();
        $implementation = $this->connector->getImplementation();
        $connection = $this->connector->getConnection();
        $duration = microtime(true);
        $cursor = $implementation->query($connection, $query);
        $duration = microtime(true) - $duration;
        if (!$cursor) {
            $errorInfo = $implementation->getErrorInfo($connection);
            $errorCode = $implementation->getErrorCode($connection);
            throw new Query($query, $errorInfo, $errorCode);
        }
        $this->debugLog($query, $duration, null);
        $fetcher = $this->createFetcher($cursor);
        if ($fetch === null) {
            return $fetcher;
        }
        return $fetcher->fetch($fetch);
    }