mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 00:32:29 -04:00
Merge pull request #47399 from nextcloud/fix/47275/driverException
fix: expand select and group by for calendar reminder backend
This commit is contained in:
commit
34445ea9d1
2 changed files with 23 additions and 21 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -118,24 +118,7 @@ class BackendTest extends TestCase {
|
|||
unset($rows[0]['id']);
|
||||
unset($rows[1]['id']);
|
||||
|
||||
$this->assertEquals($rows[0], [
|
||||
'calendar_id' => 1,
|
||||
'object_id' => 1,
|
||||
'uid' => 'asd',
|
||||
'is_recurring' => false,
|
||||
'recurrence_id' => 123458,
|
||||
'is_recurrence_exception' => false,
|
||||
'event_hash' => 'asd123',
|
||||
'alarm_hash' => 'asd567',
|
||||
'type' => 'AUDIO',
|
||||
'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], [
|
||||
$expected1 = [
|
||||
'calendar_id' => 1,
|
||||
'object_id' => 1,
|
||||
'uid' => 'asd',
|
||||
|
|
@ -151,7 +134,26 @@ class BackendTest extends TestCase {
|
|||
'calendardata' => 'Calendar data 123',
|
||||
'displayname' => 'Displayname 123',
|
||||
'principaluri' => 'principals/users/user001',
|
||||
]);
|
||||
];
|
||||
$expected2 = [
|
||||
'calendar_id' => 1,
|
||||
'object_id' => 1,
|
||||
'uid' => 'asd',
|
||||
'is_recurring' => false,
|
||||
'recurrence_id' => 123458,
|
||||
'is_recurrence_exception' => false,
|
||||
'event_hash' => 'asd123',
|
||||
'alarm_hash' => 'asd567',
|
||||
'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 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue