@@ -49,7 +49,7 @@ Q_LOGGING_CATEGORY(lcDb, "nextcloud.sync.database", QtInfoMsg)
49
49
#define GET_FILE_RECORD_QUERY \
50
50
" SELECT path, inode, modtime, type, md5, fileid, remotePerm, filesize," \
51
51
" ignoredChildrenRemote, contentchecksumtype.name || ':' || contentChecksum, e2eMangledName, isE2eEncrypted, " \
52
- " lock, lockOwnerDisplayName, lockOwnerId, lockType, lockOwnerEditor, lockTime, lockTimeout, isShared, lastShareStateFetchedTimestmap, sharedByMe" \
52
+ " lock, lockOwnerDisplayName, lockOwnerId, lockType, lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe" \
53
53
" FROM metadata" \
54
54
" LEFT JOIN checksumtype as contentchecksumtype ON metadata.contentChecksumTypeId == contentchecksumtype.id"
55
55
@@ -74,9 +74,10 @@ static void fillFileRecordFromGetQuery(SyncJournalFileRecord &rec, SqlQuery &que
74
74
rec._lockstate ._lockEditorApp = query.stringValue (16 );
75
75
rec._lockstate ._lockTime = query.int64Value (17 );
76
76
rec._lockstate ._lockTimeout = query.int64Value (18 );
77
- rec._isShared = query.intValue (19 ) > 0 ;
78
- rec._lastShareStateFetchedTimestamp = query.int64Value (20 );
79
- rec._sharedByMe = query.intValue (21 ) > 0 ;
77
+ rec._lockstate ._lockToken = query.stringValue (19 );
78
+ rec._isShared = query.intValue (20 ) > 0 ;
79
+ rec._lastShareStateFetchedTimestamp = query.int64Value (21 );
80
+ rec._sharedByMe = query.intValue (22 ) > 0 ;
80
81
}
81
82
82
83
static QByteArray defaultJournalMode (const QString &dbPath)
@@ -826,6 +827,7 @@ bool SyncJournalDb::updateMetadataTableStructure()
826
827
addColumn (QStringLiteral (" lockOwnerEditor" ), QStringLiteral (" TEXT" ));
827
828
addColumn (QStringLiteral (" lockTime" ), QStringLiteral (" INTEGER" ));
828
829
addColumn (QStringLiteral (" lockTimeout" ), QStringLiteral (" INTEGER" ));
830
+ addColumn (QStringLiteral (" lockToken" ), QStringLiteral (" TEXT" ));
829
831
830
832
SqlQuery query (_db);
831
833
query.prepare (" CREATE INDEX IF NOT EXISTS caseconflicts_basePath ON caseconflicts(basePath);" );
@@ -987,8 +989,8 @@ Result<void, QString> SyncJournalDb::setFileRecord(const SyncJournalFileRecord &
987
989
const auto query = _queryManager.get (PreparedSqlQueryManager::SetFileRecordQuery, QByteArrayLiteral (" INSERT OR REPLACE INTO metadata "
988
990
" (phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, "
989
991
" contentChecksum, contentChecksumTypeId, e2eMangledName, isE2eEncrypted, lock, lockType, lockOwnerDisplayName, lockOwnerId, "
990
- " lockOwnerEditor, lockTime, lockTimeout, isShared, lastShareStateFetchedTimestmap, sharedByMe) "
991
- " 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);" ),
992
+ " lockOwnerEditor, lockTime, lockTimeout, lockToken, isShared, lastShareStateFetchedTimestmap, sharedByMe) "
993
+ " 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 );" ),
992
994
_db);
993
995
if (!query) {
994
996
qCDebug (lcDb) << " database error:" << query->error ();
@@ -1020,9 +1022,10 @@ Result<void, QString> SyncJournalDb::setFileRecord(const SyncJournalFileRecord &
1020
1022
query->bindValue (23 , record._lockstate ._lockEditorApp );
1021
1023
query->bindValue (24 , record._lockstate ._lockTime );
1022
1024
query->bindValue (25 , record._lockstate ._lockTimeout );
1023
- query->bindValue (26 , record._isShared );
1024
- query->bindValue (27 , record._lastShareStateFetchedTimestamp );
1025
- query->bindValue (28 , record._sharedByMe );
1025
+ query->bindValue (26 , record._lockstate ._lockToken );
1026
+ query->bindValue (27 , record._isShared );
1027
+ query->bindValue (28 , record._lastShareStateFetchedTimestamp );
1028
+ query->bindValue (29 , record._sharedByMe );
1026
1029
1027
1030
if (!query->exec ()) {
1028
1031
qCDebug (lcDb) << " database error:" << query->error ();
@@ -1616,7 +1619,7 @@ bool SyncJournalDb::updateLocalMetadata(const QString &filename,
1616
1619
const auto query = _queryManager.get (PreparedSqlQueryManager::SetFileRecordLocalMetadataQuery, QByteArrayLiteral (" UPDATE metadata"
1617
1620
" SET inode=?2, modtime=?3, filesize=?4, lock=?5, lockType=?6,"
1618
1621
" lockOwnerDisplayName=?7, lockOwnerId=?8, lockOwnerEditor = ?9,"
1619
- " lockTime=?10, lockTimeout=?11"
1622
+ " lockTime=?10, lockTimeout=?11, lockToken=?12 "
1620
1623
" WHERE phash == ?1;" ),
1621
1624
_db);
1622
1625
if (!query) {
@@ -1635,6 +1638,7 @@ bool SyncJournalDb::updateLocalMetadata(const QString &filename,
1635
1638
query->bindValue (9 , lockInfo._lockEditorApp );
1636
1639
query->bindValue (10 , lockInfo._lockTime );
1637
1640
query->bindValue (11 , lockInfo._lockTimeout );
1641
+ query->bindValue (12 , lockInfo._lockToken );
1638
1642
if (!query->exec ()) {
1639
1643
qCDebug (lcDb) << " database error:" << query->error ();
1640
1644
return false ;
0 commit comments