From 732afacf5ffe196dc2033b13e5163018b493c3eb 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 ++- ...egory_flat__API.getProcessedReport_day.xml | 4 ++-- ...gory_lastN__API.getProcessedReport_day.xml | 4 ++-- ...tName_flat__API.getProcessedReport_day.xml | 4 ++-- ...Name_lastN__API.getProcessedReport_day.xml | 4 ++-- ...el__rankingQuery__Events.getAction_day.xml | 20 +++++++++---------- ...__rankingQuery__Events.getCategory_day.xml | 20 +++++++++---------- ...abel__rankingQuery__Events.getName_day.xml | 20 +++++++++---------- 9 files changed, 49 insertions(+), 39 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_flat__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_flat__API.getProcessedReport_day.xml index 4d5a0796c116..515337a43d44 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_flat__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_flat__API.getProcessedReport_day.xml @@ -538,7 +538,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_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_CustomEvents_Events.getName_flat__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_flat__API.getProcessedReport_day.xml index a029da6f0f0a..23f70b8e3ccc 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_flat__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_flat__API.getProcessedReport_day.xml @@ -616,7 +616,7 @@ 69 14 137.96 - 9.66 - 9.66 + 0 + 23 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml index e864b79f4309..660304f6a50f 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml @@ -277,7 +277,7 @@ 69 14 137.96 - 9.66 - 9.66 + 0 + 23 \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getAction_day.xml b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getAction_day.xml index 77f8fc302fa4..7d74074f3695 100644 --- a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getAction_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getAction_day.xml @@ -7,8 +7,8 @@ 1 0 0 - 0 - 0 + + 0 eventAction==-1 @@ -19,8 +19,8 @@ 1 0 0 - 0 - 0 + + 0 @@ -32,8 +32,8 @@ 1 0 0 - 0 - 0 + + 0 eventAction==event+action+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 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..3da6ff1077f4 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 diff --git a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getName_day.xml b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getName_day.xml index 8e12635faae9..1ae683001b39 100644 --- a/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getName_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimitingwithNegOneLabel__rankingQuery__Events.getName_day.xml @@ -7,8 +7,8 @@ 1 0 0 - 0 - 0 + + 0 eventName==-1 @@ -19,8 +19,8 @@ 1 0 0 - 0 - 0 + + 0 @@ -32,8 +32,8 @@ 1 0 0 - 0 - 0 + + 0 eventName==event+name+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