aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHamza <40746210+hamza221@users.noreply.github.com>2024-09-19 16:57:17 +0200
committerGitHub <noreply@github.com>2024-09-19 16:57:17 +0200
commit34445ea9d1a6597e3cd4c05996df38ab62de5e8b (patch)
treeced5a5d75613fcd494f660133cb814b46c86d4ce
parent96de697aa6fe7e75c7e311e07536cc84a29a0088 (diff)
parentab3a239853638eda699eccea1816122f25ef5bc7 (diff)
downloadnextcloud-server-34445ea9d1a6597e3cd4c05996df38ab62de5e8b.tar.gz
nextcloud-server-34445ea9d1a6597e3cd4c05996df38ab62de5e8b.zip
Merge pull request #47399 from nextcloud/fix/47275/driverException
fix: expand select and group by for calendar reminder backend
-rw-r--r--apps/dav/lib/CalDAV/Reminder/Backend.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php14
2 files changed, 10 insertions, 8 deletions
diff --git a/apps/dav/lib/CalDAV/Reminder/Backend.php b/apps/dav/lib/CalDAV/Reminder/Backend.php
index 1fa30f2538b..f5608760b61 100644
--- a/apps/dav/lib/CalDAV/Reminder/Backend.php
+++ b/apps/dav/lib/CalDAV/Reminder/Backend.php
@@ -44,12 +44,12 @@ class Backend {
*/
public function getRemindersToProcess():array {
$query = $this->db->getQueryBuilder();
- $query->select(['cr.*', 'co.calendardata', 'c.displayname', 'c.principaluri','cr.notification_date', 'cr.event_hash', 'cr.type'])
+ $query->select(['cr.id', 'cr.calendar_id','cr.object_id','cr.is_recurring','cr.uid','cr.recurrence_id','cr.is_recurrence_exception','cr.event_hash','cr.alarm_hash','cr.type','cr.is_relative','cr.notification_date','cr.is_repeat_based','co.calendardata', 'c.displayname', 'c.principaluri'])
->from('calendar_reminders', 'cr')
->where($query->expr()->lte('cr.notification_date', $query->createNamedParameter($this->timeFactory->getTime())))
->join('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
->join('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'))
- ->groupBy('cr.event_hash', 'cr.notification_date', 'cr.type');
+ ->groupBy('cr.event_hash', 'cr.notification_date', 'cr.type', 'cr.id', 'cr.calendar_id', 'cr.object_id', 'cr.is_recurring', 'cr.uid', 'cr.recurrence_id', 'cr.is_recurrence_exception', 'cr.alarm_hash', 'cr.is_relative', 'cr.is_repeat_based', 'co.calendardata', 'c.displayname', 'c.principaluri');
$stmt = $query->execute();
return array_map(
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
index 75b058c0b84..e1a0485f8a9 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
@@ -118,7 +118,7 @@ class BackendTest extends TestCase {
unset($rows[0]['id']);
unset($rows[1]['id']);
- $this->assertEquals($rows[0], [
+ $expected1 = [
'calendar_id' => 1,
'object_id' => 1,
'uid' => 'asd',
@@ -127,15 +127,15 @@ class BackendTest extends TestCase {
'is_recurrence_exception' => false,
'event_hash' => 'asd123',
'alarm_hash' => 'asd567',
- 'type' => 'AUDIO',
+ 'type' => 'EMAIL',
'is_relative' => true,
'notification_date' => 123456,
'is_repeat_based' => false,
'calendardata' => 'Calendar data 123',
'displayname' => 'Displayname 123',
'principaluri' => 'principals/users/user001',
- ]);
- $this->assertEquals($rows[1], [
+ ];
+ $expected2 = [
'calendar_id' => 1,
'object_id' => 1,
'uid' => 'asd',
@@ -144,14 +144,16 @@ class BackendTest extends TestCase {
'is_recurrence_exception' => false,
'event_hash' => 'asd123',
'alarm_hash' => 'asd567',
- 'type' => 'EMAIL',
+ 'type' => 'AUDIO',
'is_relative' => true,
'notification_date' => 123456,
'is_repeat_based' => false,
'calendardata' => 'Calendar data 123',
'displayname' => 'Displayname 123',
'principaluri' => 'principals/users/user001',
- ]);
+ ];
+
+ $this->assertEqualsCanonicalizing([$rows[0],$rows[1]], [$expected1,$expected2]);
}
public function testGetAllScheduledRemindersForEvent(): void {