diff --git a/src/QueryBuilder/Core/DBFactory.php b/src/QueryBuilder/Core/DBFactory.php index 61f9f41..38df04f 100644 --- a/src/QueryBuilder/Core/DBFactory.php +++ b/src/QueryBuilder/Core/DBFactory.php @@ -183,6 +183,28 @@ public function streamQuery(string $query): StreamEventHandler return $connection->streamQuery($query); } + /** + * @throws \Saraf\QB\QueryBuilder\Exceptions\DBFactoryException + */ + public function streamQueryRaw(string $query): ReadableStreamInterface + { + $isWrite = true; + if (str_starts_with(strtolower($query), "select") + || str_starts_with(strtolower($query), "show") + ) $isWrite = false; + + $bestConnections = $this->getBestConnection(); + + $connection = $isWrite + ? $this->writeConnections[$bestConnections['write']] + : $this->readConnections[$bestConnections['read']]; + + if (!($connection instanceof DBWorker)) + throw new DBFactoryException("Connections Not Instance of Worker / Restart App"); + + return $connection->streamQueryRaw($query); + } + /** * @throws DBFactoryException */ diff --git a/src/QueryBuilder/Core/DBWorker.php b/src/QueryBuilder/Core/DBWorker.php index 591233e..f39e61e 100644 --- a/src/QueryBuilder/Core/DBWorker.php +++ b/src/QueryBuilder/Core/DBWorker.php @@ -40,6 +40,11 @@ public function streamQuery(string $query): StreamEventHandler })); } + public function streamQueryRaw(string $query): ReadableStreamInterface + { + return $this->connection->queryStream($query); + } + protected function handleResult(QueryResult $result): array { if (!is_null($result->resultRows)) { diff --git a/src/QueryBuilder/Core/EQuery.php b/src/QueryBuilder/Core/EQuery.php index 1d54442..347913d 100644 --- a/src/QueryBuilder/Core/EQuery.php +++ b/src/QueryBuilder/Core/EQuery.php @@ -36,6 +36,11 @@ public function stream(): StreamEventHandler return $this->factory->streamQuery($this->query); } + public function streamRaw(): ReadableStreamInterface + { + return $this->factory->streamQueryRaw($this->query); + } + public function getQuery(): Promise { return new Promise(function (callable $resolve) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy