mirror of
https://github.com/nextcloud/server.git
synced 2025-02-12 12:09:14 +00:00
2e14a7a4a6
Signed-off-by: Robin Appelman <robin@icewind.nl>
27 lines
735 B
PHP
27 lines
735 B
PHP
<?php
|
|
|
|
namespace OC\Files\Search\QueryOptimizer;
|
|
|
|
use OCP\Files\Search\ISearchBinaryOperator;
|
|
use OCP\Files\Search\ISearchOperator;
|
|
|
|
/**
|
|
* replace single argument AND and OR operations with their single argument
|
|
*/
|
|
class FlattenSingleArgumentBinaryOperation extends ReplacingOptimizerStep {
|
|
public function processOperator(ISearchOperator &$operator): bool {
|
|
parent::processOperator($operator);
|
|
if (
|
|
$operator instanceof ISearchBinaryOperator &&
|
|
count($operator->getArguments()) === 1 &&
|
|
(
|
|
$operator->getType() === ISearchBinaryOperator::OPERATOR_OR ||
|
|
$operator->getType() === ISearchBinaryOperator::OPERATOR_AND
|
|
)
|
|
) {
|
|
$operator = $operator->getArguments()[0];
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|