Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dirty table reads to check #5325

Open
juliushaertl opened this issue Jan 31, 2024 · 8 comments · May be fixed by #5773
Open

Dirty table reads to check #5325

juliushaertl opened this issue Jan 31, 2024 · 8 comments · May be fixed by #5773

Comments

@juliushaertl
Copy link
Member

juliushaertl commented Jan 31, 2024

Create

...
iFXNNPjYbIAmpfVqEYYq	 replica  0 SELECT `s`.`id` FROM `oc_text_sessions` `s` LEFT JOIN `oc_text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)
iFXNNPjYbIAmpfVqEYYq	 replica  0 SELECT * FROM `oc_text_documents` WHERE `id` = :dcValue1
iFXNNPjYbIAmpfVqEYYq	 replica  0 INSERT INTO `oc_text_sessions` (`document_id`, `user_id`, `token`, `color`, `last_contact`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5)
iFXNNPjYbIAmpfVqEYYq	 primary  0 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
iFXNNPjYbIAmpfVqEYYq	 primary  0 SET SESSION AUTOCOMMIT=1
iFXNNPjYbIAmpfVqEYYq	 primary  0 SELECT `id`, `numeric_id`, `available`, `last_checked` FROM `oc_storages` WHERE `id` = :dcValue1
iFXNNPjYbIAmpfVqEYYq	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
iFXNNPjYbIAmpfVqEYYq	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
iFXNNPjYbIAmpfVqEYYq	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)

Push

...
WsqoJYfuUMgeMX801Gh4	 replica  0 SELECT * FROM `oc_text_documents` WHERE `id` = :dcValue1
WsqoJYfuUMgeMX801Gh4	 replica  0 UPDATE `oc_text_sessions` SET `last_awareness_message` = :dcValue1 WHERE `id` = :dcValue2
WsqoJYfuUMgeMX801Gh4	 primary  0 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
WsqoJYfuUMgeMX801Gh4	 primary  0 SET SESSION AUTOCOMMIT=1
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `storage`, `path`, `mimetype` FROM `oc_filecache` WHERE `fileid` = :dcValue1
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `storage_id`, `root_id`, `user_id`, `mount_point`, `mount_id`, `f`.`path`, `mount_provider_class` FROM `oc_mounts` `m` INNER JOIN `oc_filecache` `f` ON `m`.`root_id` = `f`.`fileid` WHERE (`storage_id` = ?) AND (`user_id` = ?)
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `id`, `numeric_id`, `available`, `last_checked` FROM `oc_storages` WHERE `id` = :dcValue1
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`fileid` = :dcValue1
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `id`, `mimetype` FROM `oc_mimetypes`
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT `id` FROM `oc_text_steps` WHERE `document_id` = :dcValue1 ORDER BY `id` DESC LIMIT 1
WsqoJYfuUMgeMX801Gh4	 primary  0 INSERT INTO `oc_text_steps` (`data`, `session_id`, `document_id`, `version`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4)
WsqoJYfuUMgeMX801Gh4	 primary  0 SELECT * FROM `oc_text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000
{
  "reqId": "sGwOxjS6FLwwdx1iO5zQ",
  "level": 0,
  "time": "2024-01-31T07:22:49+00:00",
  "remoteAddr": "192.168.65.1",
  "user": "admin",
  "app": "no app in context",
  "method": "POST",
  "url": "/index.php/apps/text/session/6/push",
  "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0",
  "version": "29.0.0.5",
  "exception": {
    "Exception": "Exception",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 341,
        "function": "executeQuery",
        "class": "OC\\DB\\Connection",
        "type": "->",
        "args": [
          "SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
          [
            6,
            "*** sensitive parameters replaced ***",
            "*** sensitive parameters replaced ***"
          ],
          [
            2,
            2,
            2
          ],
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 377,
        "function": "executeQuery",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 293,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/public/AppFramework/Db/QBMapper.php",
        "line": 335,
        "function": "executeQuery",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Db/StepMapper.php",
        "line": 51,
        "function": "findEntities",
        "class": "OCP\\AppFramework\\Db\\QBMapper",
        "type": "->",
        "args": [
          [
            "OC\\DB\\QueryBuilder\\QueryBuilder"
          ]
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 288,
        "function": "find",
        "class": "OCA\\Text\\Db\\StepMapper",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 231,
        "function": "getSteps",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/ApiService.php",
        "line": 206,
        "function": "addStep",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Controller/SessionController.php",
        "line": 76,
        "function": "push",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "push",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Text\\Controller\\SessionController",
          "push",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "6",
            "text.Session.push"
          ]
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1059,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/text/session/6/push"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 39,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/lib/private/DB/Connection.php",
    "Line": 285,
    "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
    "tables": [
      "oc_text_sessions",
      "oc_text_steps"
    ],
    "reads": [
      "oc_text_steps"
    ],
    "exception": {},
    "CustomMessage": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000"
  }
}
{
  "reqId": "iQ0qwj4dMBnkclWFIPRQ",
  "level": 0,
  "time": "2024-01-31T07:22:51+00:00",
  "remoteAddr": "192.168.65.1",
  "user": "admin",
  "app": "no app in context",
  "method": "POST",
  "url": "/index.php/apps/text/session/6/push",
  "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0",
  "version": "29.0.0.5",
  "exception": {
    "Exception": "Exception",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 341,
        "function": "executeQuery",
        "class": "OC\\DB\\Connection",
        "type": "->",
        "args": [
          "SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
          [
            6,
            "*** sensitive parameters replaced ***",
            "*** sensitive parameters replaced ***"
          ],
          [
            2,
            2,
            2
          ],
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 377,
        "function": "executeQuery",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 293,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/public/AppFramework/Db/QBMapper.php",
        "line": 335,
        "function": "executeQuery",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Db/StepMapper.php",
        "line": 51,
        "function": "findEntities",
        "class": "OCP\\AppFramework\\Db\\QBMapper",
        "type": "->",
        "args": [
          [
            "OC\\DB\\QueryBuilder\\QueryBuilder"
          ]
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 288,
        "function": "find",
        "class": "OCA\\Text\\Db\\StepMapper",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 231,
        "function": "getSteps",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/ApiService.php",
        "line": 206,
        "function": "addStep",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Controller/SessionController.php",
        "line": 76,
        "function": "push",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "push",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Text\\Controller\\SessionController",
          "push",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "6",
            "text.Session.push"
          ]
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1059,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/text/session/6/push"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 39,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/lib/private/DB/Connection.php",
    "Line": 285,
    "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
    "tables": [
      "oc_text_sessions",
      "oc_text_steps"
    ],
    "reads": [
      "oc_text_steps"
    ],
    "exception": {},
    "CustomMessage": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000"
  }
}

Sync

...
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT * FROM `oc_text_documents` WHERE `id` = :dcValue1
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT * FROM `oc_text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `oc_text_sessions` WHERE `document_id` = :dcValue1
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `storage`, `path`, `mimetype` FROM `oc_filecache` WHERE `fileid` = :dcValue1
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `storage_id`, `root_id`, `user_id`, `mount_point`, `mount_id`, `f`.`path`, `mount_provider_class` FROM `oc_mounts` `m` INNER JOIN `oc_filecache` `f` ON `m`.`root_id` = `f`.`fileid` WHERE (`storage_id` = ?) AND (`user_id` = ?)
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `id`, `numeric_id`, `available`, `last_checked` FROM `oc_storages` WHERE `id` = :dcValue1
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
sAbHeqltV8BGOMuXEn5s	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`fileid` = :dcValue1
{
  "reqId": "OAKatiu7A2595Iw8pMUK",
  "level": 0,
  "time": "2024-01-31T07:22:32+00:00",
  "remoteAddr": "192.168.65.1",
  "user": "admin",
  "app": "no app in context",
  "method": "POST",
  "url": "/index.php/apps/text/session/6/push",
  "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0",
  "version": "29.0.0.5",
  "exception": {
    "Exception": "Exception",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 341,
        "function": "executeQuery",
        "class": "OC\\DB\\Connection",
        "type": "->",
        "args": [
          "SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
          [
            6,
            "*** sensitive parameters replaced ***",
            "*** sensitive parameters replaced ***"
          ],
          [
            2,
            2,
            2
          ],
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 377,
        "function": "executeQuery",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 293,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/public/AppFramework/Db/QBMapper.php",
        "line": 335,
        "function": "executeQuery",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Db/StepMapper.php",
        "line": 51,
        "function": "findEntities",
        "class": "OCP\\AppFramework\\Db\\QBMapper",
        "type": "->",
        "args": [
          [
            "OC\\DB\\QueryBuilder\\QueryBuilder"
          ]
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 288,
        "function": "find",
        "class": "OCA\\Text\\Db\\StepMapper",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/DocumentService.php",
        "line": 231,
        "function": "getSteps",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          6,
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/ApiService.php",
        "line": 206,
        "function": "addStep",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Controller/SessionController.php",
        "line": 76,
        "function": "push",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "push",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "push"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Text\\Controller\\SessionController",
          "push",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "6",
            "text.Session.push"
          ]
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1059,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/text/session/6/push"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 39,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/lib/private/DB/Connection.php",
    "Line": 285,
    "message": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000",
    "tables": [
      "oc_text_sessions",
      "oc_text_steps"
    ],
    "reads": [
      "oc_text_steps"
    ],
    "exception": {},
    "CustomMessage": "dirty table reads: SELECT * FROM `*PREFIX*text_steps` WHERE (`document_id` = :dcValue1) AND (`version` > :dcValue2) AND (`id` > :dcValue3) ORDER BY `id` ASC LIMIT 1000"
  }
}

Save

...
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT * FROM `oc_text_documents` WHERE `id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `storage`, `path`, `mimetype` FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `storage_id`, `root_id`, `user_id`, `mount_point`, `mount_id`, `f`.`path`, `mount_provider_class` FROM `oc_mounts` `m` INNER JOIN `oc_filecache` `f` ON `m`.`root_id` = `f`.`fileid` WHERE (`storage_id` = ?) AND (`user_id` = ?)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `id`, `numeric_id`, `available`, `last_checked` FROM `oc_storages` WHERE `id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `id`, `mimetype` FROM `oc_mimetypes`
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `id` FROM `oc_text_steps` WHERE `document_id` = :dcValue1 ORDER BY `id` DESC LIMIT 1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `storage_id`, `root_id`, `user_id`, `mount_point`, `mount_id`, `f`.`path`, `mount_provider_class` FROM `oc_mounts` `m` INNER JOIN `oc_filecache` `f` ON `m`.`root_id` = `f`.`fileid` WHERE `user_id` = ?
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `remote`, `share_token`, `password`, `mountpoint`, `owner` FROM `oc_share_external` WHERE (`user` = :dcValue1) AND (`accepted` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `s`.*, `f`.`fileid`, `f`.`path`, `f`.`permissions` as `f_permissions`, `f`.`storage`, `f`.`path_hash`, `f`.`parent` as `f_parent`, `f`.`name`, `f`.`mimetype`, `f`.`mimepart`, `f`.`size`, `f`.`mtime`, `f`.`storage_mtime`, `f`.`encrypted`, `f`.`unencrypted_size`, `f`.`etag`, `f`.`checksum`, `st`.`id` AS `storage_string_id` FROM `oc_share` `s` LEFT JOIN `oc_filecache` `f` ON `s`.`file_source` = `f`.`fileid` LEFT JOIN `oc_storages` `st` ON `f`.`storage` = `st`.`numeric_id` WHERE (`share_type` = :dcValue1) AND (`share_with` = :dcValue2) AND ((`item_type` = :dcValue3) OR (`item_type` = :dcValue4)) ORDER BY `s`.`id` ASC
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `s`.*, `f`.`fileid`, `f`.`path`, `f`.`permissions` as `f_permissions`, `f`.`storage`, `f`.`path_hash`, `f`.`parent` as `f_parent`, `f`.`name`, `f`.`mimetype`, `f`.`mimepart`, `f`.`size`, `f`.`mtime`, `f`.`storage_mtime`, `f`.`encrypted`, `f`.`unencrypted_size`, `f`.`etag`, `f`.`checksum`, `st`.`id` AS `storage_string_id` FROM `oc_share` `s` LEFT JOIN `oc_filecache` `f` ON `s`.`file_source` = `f`.`fileid` LEFT JOIN `oc_storages` `st` ON `f`.`storage` = `st`.`numeric_id` WHERE (`share_type` = :dcValue1) AND (`share_with` IN (:dcValue2)) AND ((`item_type` = :dcValue3) OR (`item_type` = :dcValue4)) ORDER BY `s`.`id` ASC
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT DISTINCT `b`.`id` FROM `oc_deck_boards` `b` WHERE `owner` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT DISTINCT `b`.`id` FROM `oc_deck_boards` `b` INNER JOIN `oc_deck_board_acl` `acl` ON `b`.`id` = `acl`.`board_id` WHERE ((`acl`.`type` = :dcValue1) AND (`acl`.`participant` = :dcValue2)) OR ((`acl`.`type` = :dcValue3) AND (`acl`.`participant` IN (:dcValue4))) OR ((`acl`.`type` = :dcValue5) AND (`acl`.`participant` IN (:dcValue6)))
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `s`.*, `f`.`fileid`, `f`.`path`, `f`.`permissions` as `f_permissions`, `f`.`storage`, `f`.`path_hash`, `f`.`parent` as `f_parent`, `f`.`name`, `f`.`mimetype`, `f`.`mimepart`, `f`.`size`, `f`.`mtime`, `f`.`storage_mtime`, `f`.`encrypted`, `f`.`unencrypted_size`, `f`.`etag`, `f`.`checksum`, `st`.`id` AS `storage_string_id` FROM `oc_share` `s` LEFT JOIN `oc_filecache` `f` ON `s`.`file_source` = `f`.`fileid` LEFT JOIN `oc_deck_cards` `dc` ON CAST(`dc`.`id` AS CHAR) = `s`.`share_with` LEFT JOIN `oc_storages` `st` ON `f`.`storage` = `st`.`numeric_id` LEFT JOIN `oc_deck_stacks` `ds` ON `dc`.`stack_id` = `ds`.`id` LEFT JOIN `oc_deck_boards` `db` ON `ds`.`board_id` = `db`.`id` WHERE (`s`.`share_type` = :dcValue1) AND (`db`.`id` IN (:dcValue2)) AND ((`s`.`item_type` = :dcValue3) OR (`s`.`item_type` = :dcValue4)) ORDER BY `s`.`id` ASC
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 replica  0 SELECT `id` FROM `oc_jobs` WHERE (`class` = :dcValue1) AND (`argument_hash` = :dcValue2) LIMIT 1
LOQHvQUoKJKWKJex4eKx	 replica  0 UPDATE `oc_jobs` SET `reserved_at` = '0', `last_checked` = :dcValue1, `last_run` = :dcValue2 WHERE (`class` = :dcValue3) AND (`argument_hash` = :dcValue4)
LOQHvQUoKJKWKJex4eKx	 primary  0 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
LOQHvQUoKJKWKJex4eKx	 primary  0 SET SESSION AUTOCOMMIT=1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 INSERT INTO `oc_filecache` (`size`, `mtime`, `storage_mtime`, `mimepart`, `mimetype`, `etag`, `permissions`, `encrypted`, `path_hash`, `path`, `parent`, `name`, `storage`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5, :dcValue6, :dcValue7, :dcValue8, :dcValue9, :dcValue10, :dcValue11, :dcValue12, :dcValue13)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue3 WHERE (`fileid` = :dcValue1) AND ((`size` <> :dcValue2) OR (`size` IS NULL))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = :dcValue4, `storage_mtime` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`mtime` <> :dcValue2) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue3) OR (`storage_mtime` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = GREATEST(`mtime`, :dcValue1), `etag` = :dcValue3 WHERE (`storage` = :dcValue2) AND (`path_hash` IN ('d41d8cd98f00b204e9800998ecf8427e', '9692aae50022f45f1098646939b287b1'))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `storage` = :dcValue17, `path_hash` = :dcValue18, `path` = :dcValue19, `parent` = :dcValue20, `name` = :dcValue21, `mimepart` = :dcValue22, `mimetype` = :dcValue23, `size` = :dcValue24, `mtime` = :dcValue25, `storage_mtime` = :dcValue26, `encrypted` = :dcValue27, `etag` = :dcValue28, `permissions` = :dcValue29, `checksum` = :dcValue30, `unencrypted_size` = :dcValue31 WHERE (`fileid` = :dcValue1) AND (((`storage` <> :dcValue2) OR (`storage` IS NULL)) OR ((`path_hash` <> :dcValue3) OR (`path_hash` IS NULL)) OR ((`path` <> :dcValue4) OR (`path` IS NULL)) OR ((`parent` <> :dcValue5) OR (`parent` IS NULL)) OR ((`name` <> :dcValue6) OR (`name` IS NULL)) OR ((`mimepart` <> :dcValue7) OR (`mimepart` IS NULL)) OR ((`mimetype` <> :dcValue8) OR (`mimetype` IS NULL)) OR ((`size` <> :dcValue9) OR (`size` IS NULL)) OR ((`mtime` <> :dcValue10) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue11) OR (`storage_mtime` IS NULL)) OR ((`encrypted` <> :dcValue12) OR (`encrypted` IS NULL)) OR ((`etag` <> :dcValue13) OR (`etag` IS NULL)) OR ((`permissions` <> :dcValue14) OR (`permissions` IS NULL)) OR ((`checksum` <> :dcValue15) OR (`checksum` IS NULL)) OR ((`unencrypted_size` <> :dcValue16) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = :dcValue4, `storage_mtime` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`mtime` <> :dcValue2) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue3) OR (`storage_mtime` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = GREATEST(`mtime`, :dcValue1), `etag` = :dcValue3 WHERE (`storage` = :dcValue2) AND (`path_hash` IN ('d41d8cd98f00b204e9800998ecf8427e', '45b963397aa40d4a0063e0d85e4fe7a1'))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `id`, `parent`, `share_type`, `share_with`, `file_source`, `file_target`, `permissions` FROM `oc_share` WHERE ((`share_type` = :dcValue1) OR (`share_type` = :dcValue2) OR (`share_type` = :dcValue3) OR (`share_type` = :dcValue4)) AND (`file_source` IN (:dcValue5)) AND ((`item_type` = :dcValue6) OR (`item_type` = :dcValue7))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `share_with`, `token`, `file_source` FROM `oc_share` WHERE (`share_type` = :dcValue1) AND (`file_source` IN (:dcValue2)) AND ((`item_type` = :dcValue3) OR (`item_type` = :dcValue4))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `share_with` FROM `oc_share` WHERE (`share_type` = :dcValue1) AND (`file_source` IN (:dcValue2)) AND ((`item_type` = :dcValue3) OR (`item_type` = :dcValue4)) LIMIT 1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `id`, `parent`, `share_type`, `share_with`, `file_source`, `file_target`, `permissions` FROM `oc_share` WHERE (`share_type` IN (:dcValue1)) AND (`file_source` IN (:dcValue2)) AND ((`item_type` = :dcValue3) OR (`item_type` = :dcValue4))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `userid`, `configvalue` FROM `oc_preferences` WHERE (`appid` = :appName) AND (`configkey` = :configKey) AND (`userid` IN (:userIds))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `userid`, `configvalue` FROM `oc_preferences` WHERE (`appid` = :appName) AND (`configkey` = :configKey) AND (`userid` IN (:userIds))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `uid` FROM `oc_vcategory_to_object` `o` INNER JOIN `oc_vcategory` `c` ON `o`.`categoryid` = `c`.`id` WHERE (`objid` = :dcValue1) AND (`c`.`type` = :dcValue2) AND (`c`.`category` = :dcValue3)
LOQHvQUoKJKWKJex4eKx	 primary  0 INSERT INTO `oc_activity` (`app`, `subject`, `subjectparams`, `message`, `messageparams`, `file`, `link`, `user`, `affecteduser`, `timestamp`, `priority`, `type`, `object_type`, `object_id`) VALUES(:app, :subject, :subjectparams, :message, :messageparams, :object_name, :link, :user, :affecteduser, :timestamp, :priority, :type, :object_type, :object_id)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `id`, `numeric_id`, `available`, `last_checked` FROM `oc_storages` WHERE `id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache_extended` WHERE `fileid` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE `filecache`.`parent` = :dcValue1 ORDER BY `name` ASC
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_filecache` WHERE `parent` IN (:parentIds)
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 DELETE FROM `oc_files_metadata_index` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = :dcValue4, `storage_mtime` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`mtime` <> :dcValue2) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue3) OR (`storage_mtime` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `json`, `sync_token` FROM `oc_files_metadata` WHERE `file_id` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `id` FROM `oc_jobs` WHERE (`class` = :dcValue1) AND (`argument_hash` = :dcValue2) LIMIT 1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_jobs` SET `reserved_at` = '0', `last_checked` = :dcValue1, `last_run` = :dcValue2 WHERE (`class` = :dcValue3) AND (`argument_hash` = :dcValue4)
LOQHvQUoKJKWKJex4eKx	 primary  0 INSERT INTO `oc_files_versions` (`file_id`, `timestamp`, `size`, `mimetype`, `metadata`) VALUES(:dcValue1, :dcValue2, :dcValue3, :dcValue4, :dcValue5)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = :dcValue4, `storage_mtime` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`mtime` <> :dcValue2) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue3) OR (`storage_mtime` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `storage` = :dcValue17, `path_hash` = :dcValue18, `path` = :dcValue19, `parent` = :dcValue20, `name` = :dcValue21, `mimepart` = :dcValue22, `mimetype` = :dcValue23, `size` = :dcValue24, `mtime` = :dcValue25, `storage_mtime` = :dcValue26, `encrypted` = :dcValue27, `etag` = :dcValue28, `permissions` = :dcValue29, `checksum` = :dcValue30, `unencrypted_size` = :dcValue31 WHERE (`fileid` = :dcValue1) AND (((`storage` <> :dcValue2) OR (`storage` IS NULL)) OR ((`path_hash` <> :dcValue3) OR (`path_hash` IS NULL)) OR ((`path` <> :dcValue4) OR (`path` IS NULL)) OR ((`parent` <> :dcValue5) OR (`parent` IS NULL)) OR ((`name` <> :dcValue6) OR (`name` IS NULL)) OR ((`mimepart` <> :dcValue7) OR (`mimepart` IS NULL)) OR ((`mimetype` <> :dcValue8) OR (`mimetype` IS NULL)) OR ((`size` <> :dcValue9) OR (`size` IS NULL)) OR ((`mtime` <> :dcValue10) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue11) OR (`storage_mtime` IS NULL)) OR ((`encrypted` <> :dcValue12) OR (`encrypted` IS NULL)) OR ((`etag` <> :dcValue13) OR (`etag` IS NULL)) OR ((`permissions` <> :dcValue14) OR (`permissions` IS NULL)) OR ((`checksum` <> :dcValue15) OR (`checksum` IS NULL)) OR ((`unencrypted_size` <> :dcValue16) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `size`, `unencrypted_size` FROM `oc_filecache` WHERE `parent` = :dcValue1
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `size` = :dcValue4, `unencrypted_size` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`size` <> :dcValue2) OR (`size` IS NULL)) OR ((`unencrypted_size` <> :dcValue3) OR (`unencrypted_size` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `fileid` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_filecache` SET `mtime` = :dcValue4, `storage_mtime` = :dcValue5 WHERE (`fileid` = :dcValue1) AND (((`mtime` <> :dcValue2) OR (`mtime` IS NULL)) OR ((`storage_mtime` <> :dcValue3) OR (`storage_mtime` IS NULL)))
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `path` FROM `oc_filecache` WHERE (`storage` = :dcValue1) AND (`fileid` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 SELECT `filecache`.`fileid`, `storage`, `path`, `path_hash`, `filecache`.`parent`, `filecache`.`name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`, `filecache`.`permissions`, `checksum`, `unencrypted_size`, `metadata_etag`, `creation_time`, `upload_time`, `meta`.`json` AS `meta_json`, `meta`.`sync_token` AS `meta_sync_token` FROM `oc_filecache` `filecache` LEFT JOIN `oc_filecache_extended` `fe` ON `filecache`.`fileid` = `fe`.`fileid` LEFT JOIN `oc_files_metadata` `meta` ON `filecache`.`fileid` = `meta`.`file_id` WHERE (`storage` = :dcValue1) AND (`path_hash` = :dcValue2)
LOQHvQUoKJKWKJex4eKx	 primary  0 UPDATE `oc_text_documents` SET `last_saved_version` = :dcValue1, `last_saved_version_time` = :dcValue2, `last_saved_version_etag` = :dcValue3 WHERE `id` = :dcValue4

Close

...
c8oCVjQ5aFtbzG600rkv	 primary  0 SELECT * FROM `oc_text_sessions` WHERE (`document_id` = :dcValue1) AND (`id` = :dcValue2) AND (`token` = :dcValue3)
c8oCVjQ5aFtbzG600rkv	 primary  0 DELETE FROM `oc_text_sessions` WHERE `id` = :dcValue1
c8oCVjQ5aFtbzG600rkv	 primary  0 SELECT `s`.`id` FROM `oc_text_sessions` `s` LEFT JOIN `oc_text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)
c8oCVjQ5aFtbzG600rkv	 primary  0 SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `oc_text_sessions` WHERE (`document_id` = :dcValue1) AND (`last_contact` > :dcValue2)
{
  "reqId": "so6zMgBZWG7MywEpDlaQ",
  "level": 0,
  "time": "2024-01-31T07:23:32+00:00",
  "remoteAddr": "192.168.65.1",
  "user": "admin",
  "app": "no app in context",
  "method": "POST",
  "url": "/index.php/apps/text/session/6/close",
  "message": "dirty table reads: SELECT `s`.`id` FROM `*PREFIX*text_sessions` `s` LEFT JOIN `*PREFIX*text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0",
  "version": "29.0.0.5",
  "exception": {
    "Exception": "Exception",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 341,
        "function": "executeQuery",
        "class": "OC\\DB\\Connection",
        "type": "->",
        "args": [
          "SELECT `s`.`id` FROM `*PREFIX*text_sessions` `s` LEFT JOIN `*PREFIX*text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)",
          [
            1706685512,
            "*** sensitive parameters replaced ***"
          ],
          [
            2,
            2
          ],
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 377,
        "function": "executeQuery",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 293,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Db/SessionMapper.php",
        "line": 129,
        "function": "executeQuery",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/SessionService.php",
        "line": 152,
        "function": "deleteInactiveWithoutSteps",
        "class": "OCA\\Text\\Db\\SessionMapper",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/ApiService.php",
        "line": 177,
        "function": "removeInactiveSessionsWithoutSteps",
        "class": "OCA\\Text\\Service\\SessionService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Controller/SessionController.php",
        "line": 67,
        "function": "close",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "close",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "close"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "close"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Text\\Controller\\SessionController",
          "close",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "6",
            "text.Session.close"
          ]
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1059,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/text/session/6/close"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 39,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/lib/private/DB/Connection.php",
    "Line": 285,
    "message": "dirty table reads: SELECT `s`.`id` FROM `*PREFIX*text_sessions` `s` LEFT JOIN `*PREFIX*text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)",
    "tables": [
      "oc_authtoken",
      "oc_text_sessions"
    ],
    "reads": [
      "oc_text_sessions",
      "oc_text_steps"
    ],
    "exception": {},
    "CustomMessage": "dirty table reads: SELECT `s`.`id` FROM `*PREFIX*text_sessions` `s` LEFT JOIN `*PREFIX*text_steps` `st` ON `st`.`session_id` = `s`.`id` WHERE (`last_contact` < :dcValue1) AND (`st`.`id` IS NULL) AND (`s`.`document_id` = :dcValue2)"
  }
}
{
  "reqId": "so6zMgBZWG7MywEpDlaQ",
  "level": 0,
  "time": "2024-01-31T07:23:32+00:00",
  "remoteAddr": "192.168.65.1",
  "user": "admin",
  "app": "no app in context",
  "method": "POST",
  "url": "/index.php/apps/text/session/6/close",
  "message": "dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE (`document_id` = :dcValue1) AND (`last_contact` > :dcValue2)",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0",
  "version": "29.0.0.5",
  "exception": {
    "Exception": "Exception",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 341,
        "function": "executeQuery",
        "class": "OC\\DB\\Connection",
        "type": "->",
        "args": [
          "SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE (`document_id` = :dcValue1) AND (`last_contact` > :dcValue2)",
          [
            "*** sensitive parameters replaced ***",
            1706685512
          ],
          [
            2,
            2
          ],
          null
        ]
      },
      {
        "file": "/var/www/html/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php",
        "line": 377,
        "function": "executeQuery",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 280,
        "function": "execute",
        "class": "Doctrine\\DBAL\\Query\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/private/DB/QueryBuilder/QueryBuilder.php",
        "line": 293,
        "function": "execute",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/lib/public/AppFramework/Db/QBMapper.php",
        "line": 335,
        "function": "executeQuery",
        "class": "OC\\DB\\QueryBuilder\\QueryBuilder",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/text/lib/Db/SessionMapper.php",
        "line": 100,
        "function": "findEntities",
        "class": "OCP\\AppFramework\\Db\\QBMapper",
        "type": "->",
        "args": [
          [
            "OC\\DB\\QueryBuilder\\QueryBuilder"
          ]
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/SessionService.php",
        "line": 127,
        "function": "findAllActive",
        "class": "OCA\\Text\\Db\\SessionMapper",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Service/ApiService.php",
        "line": 178,
        "function": "getActiveSessions",
        "class": "OCA\\Text\\Service\\SessionService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/apps/text/lib/Controller/SessionController.php",
        "line": 67,
        "function": "close",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "close",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "close"
        ]
      },
      {
        "file": "/var/www/html/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Text\\Controller\\SessionController"
          ],
          "close"
        ]
      },
      {
        "file": "/var/www/html/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Text\\Controller\\SessionController",
          "close",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "6",
            "text.Session.close"
          ]
        ]
      },
      {
        "file": "/var/www/html/lib/base.php",
        "line": 1059,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/text/session/6/close"
        ]
      },
      {
        "file": "/var/www/html/index.php",
        "line": 39,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/var/www/html/lib/private/DB/Connection.php",
    "Line": 285,
    "message": "dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE (`document_id` = :dcValue1) AND (`last_contact` > :dcValue2)",
    "tables": [
      "oc_authtoken",
      "oc_text_sessions"
    ],
    "reads": [
      "oc_text_sessions"
    ],
    "exception": {},
    "CustomMessage": "dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE (`document_id` = :dcValue1) AND (`last_contact` > :dcValue2)"
  }
}

@juliushaertl juliushaertl added bug Something isn't working 1. to develop technical debt and removed bug Something isn't working labels Jan 31, 2024
@juliushaertl juliushaertl self-assigned this Jan 31, 2024
@juliushaertl juliushaertl removed their assignment Mar 3, 2024
@mejo-
Copy link
Member

mejo- commented Mar 20, 2024

@juliushaertl should we close this for now, given that we did quite a bit of refactoring of create/sync/push? Or would you like to keep it open?

@juliushaertl
Copy link
Member Author

Let's keep it open, still worth to check again after all the changing bits are merged

@juliushaertl
Copy link
Member Author

@hweihwang I think this could be a good starter to dive a bit into the sync backend endpoint of the text app in preparation for future work. The main goal is to avoid read after write on the same rows.

We did some rework of the backend since the issue was filed, so it would be good to generate some logs to check again on opening, editing a text document, saving and closing it. The logging that was added in nextcloud/server#42345 to the server can help there but is probably only a first hint. It would still be needed to check the affected queries in detail to see if the rows read are actually problematic, as the log does only track dirty writes depending on the table, not the actual rows writen or read.

@juliushaertl
Copy link
Member Author

juliushaertl commented May 3, 2024

  • Analyze the logs and identify affected code paths
    • create
    • sync
    • push
      • one read after write but it is also fetching previous steps that are not synced yet. Also if we miss the just written step that is not an issue here, because the next sync request will catch up anyways. Saving the query would only lead to the sync picking it up later.
    • save
      • check duplicate SELECT * FROM oc_text_documentsWHEREid = :dcValue1
    • close
  • Think about potential optimizations
  • Discuss the next steps together in a call

@hweihwang
Copy link

hweihwang commented May 6, 2024

On /save endpoint: In SessionMiddleware and beforeController hook:

  • The getDocument($documentId) method is called in both assertDocumentSession() and assertDocumentBaseVersionEtag(), resulting in two separate database SELECT queries.
    (assertUserOrShareToken() contains the call to getDocument() too)
    => Consider refactoring to retrieve those common (documentId, document, sessionId, session, ...) once before doing other logic to reduce duplicate code and queries.

  • In the beforeController method, if the first if condition is true, assertDocumentSession($controller) could potentially be invoked twice, leading to unnecessary operations.
    => Review the if conditions to ensure if they are mutually exclusive to do the early return to prevent other checks, otherwise refactor the code to prevent double invocation of assertDocumentSession($controller).

@juliushaertl

@hweihwang
Copy link

hweihwang commented May 6, 2024

Here are some of my initial thoughts about potential optimizations to decrease database workloads and improve performance:

  • Minimize the number of API calls to the /push endpoint from the front-end.
    • Consider increasing the debounce time.
    • Could be applied to other endpoints as well.
  • Consider storing the entire session data (or even more) in memory or in a read/write-optimized storage system (like a key-value or document store). This could reduce the load on the main database and improve performance. Later, the data can be saved back to the main database in batch inserts, which may only require a few queries.

@juliushaertl

@juliushaertl
Copy link
Member Author

Here are some of my initial thoughts about potential optimizations to decrease database workloads and improve performance:

* Minimize the number of API calls to the /push endpoint from the front-end.
  
  * Consider increasing the debounce time.
  * Could be applied to other endpoints as well.

Could you file separate issues about those, so we can discuss this with Max? I'd also agree with that the debounce on writing could certainly be decreased a bit. Though we want to not lower it too much to still have a almost instant sync.

* Consider storing the entire session data (or even more) in memory or in a read/write-optimized storage system (like a key-value or document store). This could reduce the load on the main database and improve performance. Later, the data can be saved back to the main database in batch inserts, which may only require a few queries.

Regarding what system we can use we are somewhat limited to what we integrate with Nextcloud server already as having another component as an additional dependency is out of scope (like a document store). As mentioned in the call, I have some mixed feelings about this. On the one hand this could certainly help to reduce the db load, however the queries itself are rather fast and we'd need to think carefully how we could store the often updating data within available redis structures. We would also always need the database as a fallback for small systems that run without it. Maybe we can also file a separate issue about that to collect what we could potentially store in cache (in addition to the db) for faster reads. (Apart from the synced steps I could also imagine storing the saved ydoc itself which could speed up file openings then and avoid a file read from disk).

@juliushaertl
Copy link
Member Author

On /save endpoint: In SessionMiddleware and beforeController hook:

* The getDocument($documentId) method is called in both assertDocumentSession() and assertDocumentBaseVersionEtag(), resulting in two separate database SELECT queries.
  (assertUserOrShareToken() contains the call to getDocument() too)
  => Consider refactoring to retrieve those common (documentId, document, sessionId, session, ...) once before doing other logic to reduce duplicate code and queries.

* In the beforeController method, if the first if condition is true, assertDocumentSession($controller) could potentially be invoked twice, leading to unnecessary operations.
  => Review the if conditions to ensure if they are mutually exclusive to do the early return to prevent other checks, otherwise refactor the code to prevent double invocation of assertDocumentSession($controller).

Right, this sounds like whenever a controller has two checks as PHP attributes we would run into this. Maybe we just store the requested document in the middleware and reuse it then to not query twice. We may also just check if the controller already has a document set and use that instead of querying the db again.

@hweihwang hweihwang linked a pull request May 7, 2024 that will close this issue
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 📄 To do (~10 entries)
Development

Successfully merging a pull request may close this issue.

3 participants