From ee4ab84e7d32d172bcd079490ae4216f5f1ba793 Mon Sep 17 00:00:00 2001 From: Juraj Date: Tue, 13 Aug 2024 14:36:13 +0200 Subject: [PATCH] Fix Invalid argument supplied for foreach() for empty aggregations In case an aggregation returns 0 rows, the fetch returns null and foreach triggers a warning. Use-case e.g.: $selection->aggregation('MEDIAN(WEEKDAY(created)) OVER ()', 'MEDIAN') --- src/Database/Table/Selection.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Database/Table/Selection.php b/src/Database/Table/Selection.php index 1ce54940e..f05526773 100644 --- a/src/Database/Table/Selection.php +++ b/src/Database/Table/Selection.php @@ -489,7 +489,11 @@ public function aggregation(string $function, ?string $groupFunction = null) return $this->explorer->query($query, ...$selection->getSqlBuilder()->getParameters())->fetch()->groupaggregate; } else { $selection->select($function); - foreach ($selection->fetch() as $val) { + $values = $selection->fetch(); + if (!$values) { + return null; + } + foreach ($values as $val) { return $val; } }