summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2024-02-14 13:30:11 -0100
committerMaxence Lange <maxence@artificial-owl.com>2024-04-17 16:39:54 -0100
commita39d363c94d9554507fb24c7d07761bf9ac504b6 (patch)
tree2dfa6773193b9b1859d75d8c1cf02f4415b1e24a
parent053cb7455b270cd35d7797be6874abf7ffb6c22b (diff)
feat(metadata): migrate to lazy appconfigbackport/43574/stable29
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r--lib/private/Files/Cache/Cache.php4
-rw-r--r--lib/private/Files/Cache/CacheQueryBuilder.php6
-rw-r--r--lib/private/Files/Cache/QuerySearchHelper.php7
-rw-r--r--lib/private/FilesMetadata/FilesMetadataManager.php44
-rw-r--r--lib/private/FilesMetadata/MetadataQuery.php30
-rw-r--r--lib/public/FilesMetadata/IFilesMetadataManager.php16
-rw-r--r--lib/public/FilesMetadata/IMetadataQuery.php2
7 files changed, 55 insertions, 54 deletions
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index 8f0f962a3b7..62e1e57a171 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -171,7 +171,7 @@ class Cache implements ICache {
} elseif (!$data) {
return $data;
} else {
- $data['metadata'] = $metadataQuery?->extractMetadata($data)->asArray() ?? [];
+ $data['metadata'] = $metadataQuery->extractMetadata($data)->asArray();
return self::cacheEntryFromData($data, $this->mimetypeLoader);
}
}
@@ -243,7 +243,7 @@ class Cache implements ICache {
$result->closeCursor();
return array_map(function (array $data) use ($metadataQuery) {
- $data['metadata'] = $metadataQuery?->extractMetadata($data)->asArray() ?? [];
+ $data['metadata'] = $metadataQuery->extractMetadata($data)->asArray();
return self::cacheEntryFromData($data, $this->mimetypeLoader);
}, $files);
}
diff --git a/lib/private/Files/Cache/CacheQueryBuilder.php b/lib/private/Files/Cache/CacheQueryBuilder.php
index d80375e94ee..a237dd915d7 100644
--- a/lib/private/Files/Cache/CacheQueryBuilder.php
+++ b/lib/private/Files/Cache/CacheQueryBuilder.php
@@ -138,11 +138,11 @@ class CacheQueryBuilder extends QueryBuilder {
/**
* join metadata to current query builder and returns an helper
*
- * @return IMetadataQuery|null NULL if no metadata have never been generated
+ * @return IMetadataQuery
*/
- public function selectMetadata(): ?IMetadataQuery {
+ public function selectMetadata(): IMetadataQuery {
$metadataQuery = $this->filesMetadataManager->getMetadataQuery($this, $this->alias, 'fileid');
- $metadataQuery?->retrieveMetadata();
+ $metadataQuery->retrieveMetadata();
return $metadataQuery;
}
}
diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php
index d8c5e66e129..849135d44f0 100644
--- a/lib/private/Files/Cache/QuerySearchHelper.php
+++ b/lib/private/Files/Cache/QuerySearchHelper.php
@@ -195,12 +195,7 @@ class QuerySearchHelper {
$files = $result->fetchAll();
$rawEntries = array_map(function (array $data) use ($metadataQuery) {
- // migrate to null safe ...
- if ($metadataQuery === null) {
- $data['metadata'] = [];
- } else {
- $data['metadata'] = $metadataQuery->extractMetadata($data)->asArray();
- }
+ $data['metadata'] = $metadataQuery->extractMetadata($data)->asArray();
return Cache::cacheEntryFromData($data, $this->mimetypeLoader);
}, $files);
diff --git a/lib/private/FilesMetadata/FilesMetadataManager.php b/lib/private/FilesMetadata/FilesMetadataManager.php
index a684b870637..08c1b4f459c 100644
--- a/lib/private/FilesMetadata/FilesMetadataManager.php
+++ b/lib/private/FilesMetadata/FilesMetadataManager.php
@@ -51,8 +51,7 @@ use OCP\FilesMetadata\IFilesMetadataManager;
use OCP\FilesMetadata\IMetadataQuery;
use OCP\FilesMetadata\Model\IFilesMetadata;
use OCP\FilesMetadata\Model\IMetadataValueWrapper;
-use OCP\IConfig;
-use OCP\IDBConnection;
+use OCP\IAppConfig;
use Psr\Log\LoggerInterface;
/**
@@ -69,7 +68,7 @@ class FilesMetadataManager implements IFilesMetadataManager {
public function __construct(
private IEventDispatcher $eventDispatcher,
private IJobList $jobList,
- private IConfig $config,
+ private IAppConfig $appConfig,
private LoggerInterface $logger,
private MetadataRequestService $metadataRequestService,
private IndexRequestService $indexRequestService,
@@ -206,7 +205,7 @@ class FilesMetadataManager implements IFilesMetadataManager {
// update metadata types list
$current = $this->getKnownMetadata();
$current->import($filesMetadata->jsonSerialize(true));
- $this->config->setAppValue('core', self::CONFIG_KEY, json_encode($current));
+ $this->appConfig->setValueArray('core', self::CONFIG_KEY, $current->jsonSerialize(), lazy: true);
}
/**
@@ -235,7 +234,7 @@ class FilesMetadataManager implements IFilesMetadataManager {
* @param string $fileIdField alias of the field that contains file ids
*
* @inheritDoc
- * @return IMetadataQuery|null
+ * @return IMetadataQuery
* @see IMetadataQuery