From 7467422f570a44d3b3865907ba6f6f1a96d53a0b Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 15 Nov 2023 20:02:28 -0100 Subject: implements search on null/notnull metadata Signed-off-by: Maxence Lange --- lib/private/Files/Cache/SearchBuilder.php | 2 ++ lib/public/Files/Search/ISearchComparison.php | 1 + 2 files changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/private/Files/Cache/SearchBuilder.php b/lib/private/Files/Cache/SearchBuilder.php index c3699cca63d..38161ec9cc6 100644 --- a/lib/private/Files/Cache/SearchBuilder.php +++ b/lib/private/Files/Cache/SearchBuilder.php @@ -47,6 +47,7 @@ class SearchBuilder { ISearchComparison::COMPARE_GREATER_THAN_EQUAL => 'gte', ISearchComparison::COMPARE_LESS_THAN => 'lt', ISearchComparison::COMPARE_LESS_THAN_EQUAL => 'lte', + ISearchComparison::COMPARE_DEFINED => 'isNotNull', ]; protected static $searchOperatorNegativeMap = [ @@ -57,6 +58,7 @@ class SearchBuilder { ISearchComparison::COMPARE_GREATER_THAN_EQUAL => 'lt', ISearchComparison::COMPARE_LESS_THAN => 'gte', ISearchComparison::COMPARE_LESS_THAN_EQUAL => 'gt', + ISearchComparison::COMPARE_DEFINED => 'isNull', ]; public const TAG_FAVORITE = '_$!!$_'; diff --git a/lib/public/Files/Search/ISearchComparison.php b/lib/public/Files/Search/ISearchComparison.php index d7313fbaf2a..e1650dabc61 100644 --- a/lib/public/Files/Search/ISearchComparison.php +++ b/lib/public/Files/Search/ISearchComparison.php @@ -35,6 +35,7 @@ interface ISearchComparison extends ISearchOperator { public const COMPARE_LESS_THAN_EQUAL = 'lte'; public const COMPARE_LIKE = 'like'; public const COMPARE_LIKE_CASE_SENSITIVE = 'clike'; + public const COMPARE_DEFINED = 'defined'; public const HINT_PATH_EQ_HASH = 'path_eq_hash'; // transform `path = "$path"` into `path_hash = md5("$path")`, on by default -- cgit v1.2.3 From a93af13c12fc072c8b612b72c86ea3540f19e0fd Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Thu, 16 Nov 2023 11:10:21 +0100 Subject: Fix is-define operator Signed-off-by: Louis Chemineau --- apps/dav/lib/Files/FileSearchBackend.php | 2 +- lib/public/Files/Search/ISearchComparison.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php index d52eb60729a..419a0c5ed3b 100644 --- a/apps/dav/lib/Files/FileSearchBackend.php +++ b/apps/dav/lib/Files/FileSearchBackend.php @@ -386,7 +386,7 @@ class FileSearchBackend implements ISearchBackend { } return new SearchComparison( - ISearchComparison::COMPARE_DEFINED, + $trimmedType, $field, $this->castValue($property, $value ?? ''), $extra ?? '' diff --git a/lib/public/Files/Search/ISearchComparison.php b/lib/public/Files/Search/ISearchComparison.php index e1650dabc61..ba02f39996f 100644 --- a/lib/public/Files/Search/ISearchComparison.php +++ b/lib/public/Files/Search/ISearchComparison.php @@ -35,7 +35,7 @@ interface ISearchComparison extends ISearchOperator { public const COMPARE_LESS_THAN_EQUAL = 'lte'; public const COMPARE_LIKE = 'like'; public const COMPARE_LIKE_CASE_SENSITIVE = 'clike'; - public const COMPARE_DEFINED = 'defined'; + public const COMPARE_DEFINED = 'is-defined'; public const HINT_PATH_EQ_HASH = 'path_eq_hash'; // transform `path = "$path"` into `path_hash = md5("$path")`, on by default -- cgit v1.2.3