diff options
Diffstat (limited to 'lib/private/Lock')
-rw-r--r-- | lib/private/Lock/DBLockingProvider.php | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/private/Lock/DBLockingProvider.php b/lib/private/Lock/DBLockingProvider.php index 1865e94925f..3a599a61e7d 100644 --- a/lib/private/Lock/DBLockingProvider.php +++ b/lib/private/Lock/DBLockingProvider.php @@ -26,6 +26,7 @@ namespace OC\Lock; use OC\DB\QueryBuilder\Literal; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use OCP\ILogger; use OCP\Lock\ILockingProvider; @@ -267,13 +268,10 @@ class DBLockingProvider extends AbstractLockingProvider { foreach ($chunkedPaths as $chunk) { $builder = $this->connection->getQueryBuilder(); - $params = array_map(function ($path) use ($builder) { - return $builder->createNamedParameter($path); - }, $chunk); $query = $builder->update('file_locks') ->set('lock', $builder->createFunction('`lock` -1')) - ->where($builder->expr()->in('key', $params)) + ->where($builder->expr()->in('key', $builder->createNamedParameter($chunk, IQueryBuilder::PARAM_STR_ARRAY))) ->andWhere($builder->expr()->gt('lock', new Literal(0))); $query->execute(); |