From 020d00aa084562f7c9c7f44e99d6ece739f81689 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Tue, 2 Jul 2024 18:50:42 +0200 Subject: [PATCH] Ensure correct aggregation of min/max event value metrics --- plugins/Events/API.php | 9 +++++++++ .../Events/RecordBuilders/EventReports.php | 3 ++- ...gory_lastN__API.getProcessedReport_day.xml | 4 ++-- ...__rankingQuery__Events.getCategory_day.xml | 20 +++++++++---------- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/plugins/Events/API.php b/plugins/Events/API.php index 0b3213fd1063..92df1cfb0f46 100644 --- a/plugins/Events/API.php +++ b/plugins/Events/API.php @@ -10,6 +10,8 @@ namespace Piwik\Plugins\Events; use Piwik\Archive; +use Piwik\DataTable; +use Piwik\Metrics; use Piwik\Piwik; /** @@ -154,6 +156,13 @@ protected function getDataTable($name, $idSite, $period, $date, $segment, $expan $dataTable = Archive::createDataTableFromArchive($recordName, $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable); + $dataTable->filter(function ($dataTable) { + $dataTable->setMetadata(DataTable::COLUMN_AGGREGATION_OPS_METADATA_NAME, [ + Metrics::INDEX_EVENT_MIN_EVENT_VALUE => 'min', + Metrics::INDEX_EVENT_MAX_EVENT_VALUE => 'max', + ]); + }); + if ($flat) { $dataTable->filterSubtables('Piwik\Plugins\Events\DataTable\Filter\ReplaceEventNameNotSet'); } else { diff --git a/plugins/Events/RecordBuilders/EventReports.php b/plugins/Events/RecordBuilders/EventReports.php index 72a0b9cd2f6e..2a07364cf418 100644 --- a/plugins/Events/RecordBuilders/EventReports.php +++ b/plugins/Events/RecordBuilders/EventReports.php @@ -51,7 +51,8 @@ public function getRecordMetadata(ArchiveProcessor $archiveProcessor): array foreach ($records as $record) { $record->setMaxRowsInTable($maximumRowsInDataTable) - ->setMaxRowsInSubtable($maximumRowsInSubDataTable); + ->setMaxRowsInSubtable($maximumRowsInSubDataTable) + ->setBlobColumnAggregationOps($this->columnAggregationOps); } return $records; diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml index b027438a3dc9..6433ad093bcf 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml @@ -181,7 +181,7 @@ 69 14 137.96 - 28.32 - 52.32 + 0 + 23 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getCategory_day.xml index 980dbf026790..86558df94a87 100644 --- a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getCategory_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getCategory_day.xml @@ -7,8 +7,8 @@ 1 0 0 - 0 - 0 + + 0 eventCategory==-1 @@ -19,8 +19,8 @@ 1 0 0 - 0 - 0 + + 0 @@ -32,8 +32,8 @@ 1 0 0 - 0 - 0 + + 0 eventCategory==event+category+0 @@ -44,8 +44,8 @@ 1 0 0 - 0 - 0 + + 0 @@ -57,8 +57,8 @@ 19 0 0 - 0 - 0 + + 0 \ No newline at end of file