зеркало из https://github.com/nextcloud/desktop.git
Handle live photo in syncjournaldb queries and inserts
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Родитель
b3b955f80f
Коммит
1b87aa95ce
|
@ -49,7 +49,7 @@ Q_LOGGING_CATEGORY(lcDb, "nextcloud.sync.database", QtInfoMsg)
|
||||||
#define GET_FILE_RECORD_QUERY \
|
#define GET_FILE_RECORD_QUERY \
|
||||||
"SELECT path, inode, modtime, type, md5, fileid, remotePerm, filesize," \
|
"SELECT path, inode, modtime, type, md5, fileid, remotePerm, filesize," \
|
||||||
" ignoredChildrenRemote, contentchecksumtype.name || ':' || contentChecksum, e2eMangledName, isE2eEncrypted, " \
|
" ignoredChildrenRemote, contentchecksumtype.name || ':' || contentChecksum, e2eMangledName, isE2eEncrypted, " \
|
||||||
" lock, lockOwnerDisplayName, lockOwnerId, lockType, lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe" \
|
" lock, lockOwnerDisplayName, lockOwnerId, lockType, lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe, isLivePhoto, livePhotoFile" \
|
||||||
" FROM metadata" \
|
" FROM metadata" \
|
||||||
" LEFT JOIN checksumtype as contentchecksumtype ON metadata.contentChecksumTypeId == contentchecksumtype.id"
|
" LEFT JOIN checksumtype as contentchecksumtype ON metadata.contentChecksumTypeId == contentchecksumtype.id"
|
||||||
|
|
||||||
|
@ -78,6 +78,8 @@ static void fillFileRecordFromGetQuery(SyncJournalFileRecord &rec, SqlQuery &que
|
||||||
rec._isShared = query.intValue(20) > 0;
|
rec._isShared = query.intValue(20) > 0;
|
||||||
rec._lastShareStateFetchedTimestamp = query.int64Value(21);
|
rec._lastShareStateFetchedTimestamp = query.int64Value(21);
|
||||||
rec._sharedByMe = query.intValue(22) > 0;
|
rec._sharedByMe = query.intValue(22) > 0;
|
||||||
|
rec._isLivePhoto = query.intValue(23) > 0;
|
||||||
|
rec._livePhotoFile = query.stringValue(24);
|
||||||
}
|
}
|
||||||
|
|
||||||
static QByteArray defaultJournalMode(const QString &dbPath)
|
static QByteArray defaultJournalMode(const QString &dbPath)
|
||||||
|
@ -837,6 +839,9 @@ bool SyncJournalDb::updateMetadataTableStructure()
|
||||||
}
|
}
|
||||||
commitInternal(QStringLiteral("update database structure: add basePath index"));
|
commitInternal(QStringLiteral("update database structure: add basePath index"));
|
||||||
|
|
||||||
|
addColumn(QStringLiteral("isLivePhoto"), QStringLiteral("INTEGER"));
|
||||||
|
addColumn(QStringLiteral("livePhotoFile"), QStringLiteral("TEXT"));
|
||||||
|
|
||||||
return re;
|
return re;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -963,7 +968,9 @@ Result<void, QString> SyncJournalDb::setFileRecord(const SyncJournalFileRecord &
|
||||||
<< "lock editor:" << record._lockstate._lockEditorApp
|
<< "lock editor:" << record._lockstate._lockEditorApp
|
||||||
<< "sharedByMe:" << record._sharedByMe
|
<< "sharedByMe:" << record._sharedByMe
|
||||||
<< "isShared:" << record._isShared
|
<< "isShared:" << record._isShared
|
||||||
<< "lastShareStateFetchedTimestamp:" << record._lastShareStateFetchedTimestamp;
|
<< "lastShareStateFetchedTimestamp:" << record._lastShareStateFetchedTimestamp
|
||||||
|
<< "isLivePhoto" << record._isLivePhoto
|
||||||
|
<< "livePhotoFile" << record._livePhotoFile;
|
||||||
|
|
||||||
const qint64 phash = getPHash(record._path);
|
const qint64 phash = getPHash(record._path);
|
||||||
if (!checkConnect()) {
|
if (!checkConnect()) {
|
||||||
|
@ -989,8 +996,8 @@ Result<void, QString> SyncJournalDb::setFileRecord(const SyncJournalFileRecord &
|
||||||
const auto query = _queryManager.get(PreparedSqlQueryManager::SetFileRecordQuery, QByteArrayLiteral("INSERT OR REPLACE INTO metadata "
|
const auto query = _queryManager.get(PreparedSqlQueryManager::SetFileRecordQuery, QByteArrayLiteral("INSERT OR REPLACE INTO metadata "
|
||||||
"(phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, "
|
"(phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, "
|
||||||
"contentChecksum, contentChecksumTypeId, e2eMangledName, isE2eEncrypted, lock, lockType, lockOwnerDisplayName, lockOwnerId, "
|
"contentChecksum, contentChecksumTypeId, e2eMangledName, isE2eEncrypted, lock, lockType, lockOwnerDisplayName, lockOwnerId, "
|
||||||
"lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe) "
|
"lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe, isLivePhoto, livePhotoFile) "
|
||||||
"VALUES (?1 , ?2, ?3 , ?4 , ?5 , ?6 , ?7, ?8 , ?9 , ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23, ?24, ?25, ?26, ?27, ?28, ?29);"),
|
"VALUES (?1 , ?2, ?3 , ?4 , ?5 , ?6 , ?7, ?8 , ?9 , ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23, ?24, ?25, ?26, ?27, ?28, ?29, ?30, ?31);"),
|
||||||
_db);
|
_db);
|
||||||
if (!query) {
|
if (!query) {
|
||||||
qCDebug(lcDb) << "database error:" << query->error();
|
qCDebug(lcDb) << "database error:" << query->error();
|
||||||
|
@ -1026,6 +1033,8 @@ Result<void, QString> SyncJournalDb::setFileRecord(const SyncJournalFileRecord &
|
||||||
query->bindValue(27, record._isShared);
|
query->bindValue(27, record._isShared);
|
||||||
query->bindValue(28, record._lastShareStateFetchedTimestamp);
|
query->bindValue(28, record._lastShareStateFetchedTimestamp);
|
||||||
query->bindValue(29, record._sharedByMe);
|
query->bindValue(29, record._sharedByMe);
|
||||||
|
query->bindValue(30, record._isLivePhoto);
|
||||||
|
query->bindValue(31, record._livePhotoFile);
|
||||||
|
|
||||||
if (!query->exec()) {
|
if (!query->exec()) {
|
||||||
qCDebug(lcDb) << "database error:" << query->error();
|
qCDebug(lcDb) << "database error:" << query->error();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче