diff options
author | Maxence Lange <maxence@artificial-owl.com> | 2024-02-14 13:30:11 -0100 |
---|---|---|
committer | Maxence Lange <maxence@artificial-owl.com> | 2024-04-17 16:39:54 -0100 |
commit | a39d363c94d9554507fb24c7d07761bf9ac504b6 (patch) | |
tree | 2dfa6773193b9b1859d75d8c1cf02f4415b1e24a | |
parent | 053cb7455b270cd35d7797be6874abf7ffb6c22b (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.php | 4 | ||||
-rw-r--r-- | lib/private/Files/Cache/CacheQueryBuilder.php | 6 | ||||
-rw-r--r-- | lib/private/Files/Cache/QuerySearchHelper.php | 7 | ||||
-rw-r--r-- | lib/private/FilesMetadata/FilesMetadataManager.php | 44 | ||||
-rw-r--r-- | lib/private/FilesMetadata/MetadataQuery.php | 30 | ||||
-rw-r--r-- | lib/public/FilesMetadata/IFilesMetadataManager.php | 16 | ||||
-rw-r--r-- | lib/public/FilesMetadata/IMetadataQuery.php | 2 |
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 |