]> source.dussan.org Git - nextcloud-server.git/commit
use efficient tag retrieval on DAV report request
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Fri, 28 Apr 2023 12:09:22 +0000 (14:09 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 21 Jun 2023 16:19:08 +0000 (18:19 +0200)
commit58f7fd2370dc76480a16b1a8c7eca4495ee907b2
tree42ed3ccc0f57b1a7d778d1e7b0d95a7c153750d4
parenta17d01951fdf72a37036fe67cba4009b03b5723e
use efficient tag retrieval on DAV report request

- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar

Example request body:

<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns" xmlns:ocs="http://open-collaboration-services.org/ns">
  <d:prop>
    <d:getcontentlength/>
    <d:getcontenttype/>
    <d:getetag/>
    <d:getlastmodified/>
    <d:resourcetype/>
    <nc:face-detections/>
    <nc:file-metadata-size/>
    <nc:has-preview/>
    <nc:realpath/>
    <oc:favorite/>
    <oc:fileid/>
    <oc:permissions/>
    <nc:nbItems/>
  </d:prop>
  <oc:filter-rules>
    <oc:systemtag>32</oc:systemtag>
  </oc:filter-rules>
  <d:limit>
    <d:nresults>50</d:nresults>
    <nc:firstresult>0</nc:firstresult>
  </d:limit>
</oc:filter-files>

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
lib/private/Files/Cache/QuerySearchHelper.php
lib/private/Files/Node/Folder.php
lib/private/SystemTag/SystemTagObjectMapper.php