aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2023-09-21 13:49:16 +0200
committerRobin Appelman <robin@icewind.nl>2024-02-15 17:55:40 +0100
commit2e14a7a4a6efb5444fb65e0c2368e3420d024d90 (patch)
tree6f68533daa5fb6ef10261bdc0034e7de910378b5 /lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php
parent1f0cba5f991a3c12d230284b3d96f91fb50312fd (diff)
downloadnextcloud-server-2e14a7a4a6efb5444fb65e0c2368e3420d024d90.tar.gz
nextcloud-server-2e14a7a4a6efb5444fb65e0c2368e3420d024d90.zip
optimize query pattern used by storage filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php')
-rw-r--r--lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php b/lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php
index 160b27b7f11..6240ef3367e 100644
--- a/lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php
+++ b/lib/private/Files/Search/QueryOptimizer/QueryOptimizer.php
@@ -29,15 +29,18 @@ class QueryOptimizer {
/** @var QueryOptimizerStep[] */
private $steps = [];
- public function __construct(
- PathPrefixOptimizer $pathPrefixOptimizer
- ) {
+ public function __construct() {
+ // note that the order here is relevant
$this->steps = [
- $pathPrefixOptimizer
+ new PathPrefixOptimizer(),
+ new MergeDistributiveOperations(),
+ new FlattenSingleArgumentBinaryOperation(),
+ new OrEqualsToIn(),
+ new FlattenNestedBool(),
];
}
- public function processOperator(ISearchOperator $operator) {
+ public function processOperator(ISearchOperator &$operator) {
foreach ($this->steps as $step) {
$step->inspectOperator($operator);
}