Oracle can not return statements but only values
So evaluate the condition directly and return 1 or 0
This commit is contained in:
parent
b9faba8857
commit
623d34972d
|
@ -379,6 +379,7 @@ class Activity implements IExtension {
|
||||||
*/
|
*/
|
||||||
$parameters = $fileQueryList = [];
|
$parameters = $fileQueryList = [];
|
||||||
$parameters[] = self::APP_FILES;
|
$parameters[] = self::APP_FILES;
|
||||||
|
$parameters[] = self::APP_FILES;
|
||||||
|
|
||||||
$fileQueryList[] = '(`type` <> ? AND `type` <> ?)';
|
$fileQueryList[] = '(`type` <> ? AND `type` <> ?)';
|
||||||
$parameters[] = self::TYPE_SHARE_CREATED;
|
$parameters[] = self::TYPE_SHARE_CREATED;
|
||||||
|
@ -393,10 +394,12 @@ class Activity implements IExtension {
|
||||||
$parameters[] = $favorite . '/%';
|
$parameters[] = $favorite . '/%';
|
||||||
}
|
}
|
||||||
|
|
||||||
$parameters[] = self::APP_FILES;
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
' CASE WHEN `app` = ? THEN (' . implode(' OR ', $fileQueryList) . ') ELSE `app` <> ? END ',
|
' CASE '
|
||||||
|
. 'WHEN `app` <> ? THEN 1 '
|
||||||
|
. 'WHEN `app` = ? AND (' . implode(' OR ', $fileQueryList) . ') THEN 1 '
|
||||||
|
. 'ELSE 0 '
|
||||||
|
. 'END = 1 ',
|
||||||
$parameters,
|
$parameters,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -290,16 +290,16 @@ class ActivityTest extends TestCase {
|
||||||
'items' => [],
|
'items' => [],
|
||||||
'folders' => [],
|
'folders' => [],
|
||||||
],
|
],
|
||||||
' CASE WHEN `app` = ? THEN ((`type` <> ? AND `type` <> ?)) ELSE `app` <> ? END ',
|
' CASE WHEN `app` <> ? THEN 1 WHEN `app` = ? AND ((`type` <> ? AND `type` <> ?)) THEN 1 ELSE 0 END = 1 ',
|
||||||
['files', Activity::TYPE_SHARE_CREATED, Activity::TYPE_SHARE_CHANGED, 'files']
|
['files', 'files', Activity::TYPE_SHARE_CREATED, Activity::TYPE_SHARE_CHANGED]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
'items' => ['file.txt', 'folder'],
|
'items' => ['file.txt', 'folder'],
|
||||||
'folders' => ['folder'],
|
'folders' => ['folder'],
|
||||||
],
|
],
|
||||||
' CASE WHEN `app` = ? THEN ((`type` <> ? AND `type` <> ?) OR `file` = ? OR `file` = ? OR `file` LIKE ?) ELSE `app` <> ? END ',
|
' CASE WHEN `app` <> ? THEN 1 WHEN `app` = ? AND ((`type` <> ? AND `type` <> ?) OR `file` = ? OR `file` = ? OR `file` LIKE ?) THEN 1 ELSE 0 END = 1 ',
|
||||||
['files', Activity::TYPE_SHARE_CREATED, Activity::TYPE_SHARE_CHANGED, 'file.txt', 'folder', 'folder/%', 'files']
|
['files', 'files', Activity::TYPE_SHARE_CREATED, Activity::TYPE_SHARE_CHANGED, 'file.txt', 'folder', 'folder/%']
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue