From f74c3f08e47755dd67809ce30ccaeacb7b372a9d Mon Sep 17 00:00:00 2001 From: Matthias Neid Date: Wed, 11 Feb 2026 15:23:17 +0100 Subject: [PATCH 1/3] replace query result collection with multi query result --- src/GenericModel.php | 4 +-- src/Query/MultiQueryResult.php | 51 +++++++++++++++++++++++++++++ src/Query/QueryResultCollection.php | 28 ---------------- 3 files changed, 53 insertions(+), 30 deletions(-) create mode 100644 src/Query/MultiQueryResult.php delete mode 100644 src/Query/QueryResultCollection.php diff --git a/src/GenericModel.php b/src/GenericModel.php index 0cf83c8..ecce711 100644 --- a/src/GenericModel.php +++ b/src/GenericModel.php @@ -23,9 +23,9 @@ use Aternos\Model\Query\DeleteQuery; use Aternos\Model\Query\GroupField; use Aternos\Model\Query\Limit; +use Aternos\Model\Query\MultiQueryResult; use Aternos\Model\Query\Query; use Aternos\Model\Query\QueryResult; -use Aternos\Model\Query\QueryResultCollection; use Aternos\Model\Query\SelectQuery; use Aternos\Model\Query\UpdateQuery; use Aternos\Model\Query\WhereCondition; @@ -519,7 +519,7 @@ public static function query(Query $query): QueryResult if ($query instanceof SelectQuery || count($results) === 1) { return $result; } else { - return new QueryResultCollection($results); + return new MultiQueryResult()->addQueryResults($results); } } diff --git a/src/Query/MultiQueryResult.php b/src/Query/MultiQueryResult.php new file mode 100644 index 0000000..9f70b67 --- /dev/null +++ b/src/Query/MultiQueryResult.php @@ -0,0 +1,51 @@ +queryResults[] = $queryResult; + if ($queryResult->getQueryString() !== null) { + $this->setQueryString($queryResult->getQueryString()); + } + if ($queryResult->getQueryString() !== null) { + $this->setAffectedRows($queryResult->getAffectedRows()); + } + return $this; + } + + /** + * @param array $queryResults + * @return $this + */ + public function addQueryResults(array $queryResults): static + { + foreach ($queryResults as $queryResult) { + if ($queryResult instanceof QueryResult) { + $this->addQueryResult($queryResult); + } + } + return $this; + } + + /** + * @return QueryResult[] + */ + public function getAllQueryResults(): array + { + return $this->queryResults; + } +} \ No newline at end of file diff --git a/src/Query/QueryResultCollection.php b/src/Query/QueryResultCollection.php deleted file mode 100644 index d9cd8c9..0000000 --- a/src/Query/QueryResultCollection.php +++ /dev/null @@ -1,28 +0,0 @@ - Date: Wed, 11 Feb 2026 15:24:31 +0100 Subject: [PATCH 2/3] fix phpdoc --- src/Query/MultiQueryResult.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Query/MultiQueryResult.php b/src/Query/MultiQueryResult.php index 9f70b67..f30e846 100644 --- a/src/Query/MultiQueryResult.php +++ b/src/Query/MultiQueryResult.php @@ -28,7 +28,7 @@ public function addQueryResult(QueryResult $queryResult): static } /** - * @param array $queryResults + * @param QueryResult[] $queryResults * @return $this */ public function addQueryResults(array $queryResults): static From c4de740af3444a3a76a765e5b0d34c005038d160 Mon Sep 17 00:00:00 2001 From: Matthias Neid Date: Wed, 11 Feb 2026 15:28:24 +0100 Subject: [PATCH 3/3] attach driver to query result --- src/GenericModel.php | 3 ++- src/Query/QueryResult.php | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/GenericModel.php b/src/GenericModel.php index ecce711..bc35e55 100644 --- a/src/GenericModel.php +++ b/src/GenericModel.php @@ -480,10 +480,11 @@ public static function query(Query $query): QueryResult $results = []; $lastException = null; foreach ($drivers as $queryableDriver) { - /** @var QueryableInterface $driver */ + /** @var QueryableInterface|DriverInterface $driver */ $driver = static::getDriverRegistry()->getDriver($queryableDriver); try { $result = $driver->query($query); + $result->setDriver($driver); if ($query instanceof SelectQuery) { $lastException = null; diff --git a/src/Query/QueryResult.php b/src/Query/QueryResult.php index d85978c..2b41375 100644 --- a/src/Query/QueryResult.php +++ b/src/Query/QueryResult.php @@ -2,6 +2,7 @@ namespace Aternos\Model\Query; +use Aternos\Model\Driver\DriverInterface; use Aternos\Model\ModelCollection; use Aternos\Model\ModelInterface; @@ -14,6 +15,8 @@ */ class QueryResult extends ModelCollection { + protected ?DriverInterface $driver = null; + /** * Raw query string that was executed * @@ -83,4 +86,22 @@ public function setAffectedRows(?int $affectedRows): static } return $this; } + + /** + * @param DriverInterface $driver + * @return $this + */ + public function setDriver(DriverInterface $driver): static + { + $this->driver = $driver; + return $this; + } + + /** + * @return DriverInterface|null + */ + public function getDriver(): ?DriverInterface + { + return $this->driver; + } }