[m][photos] Fix for duplicate entries for local file (#6904)

## Description

## Tests
This commit is contained in:
Neeraj
2025-08-20 10:42:41 +05:30
committed by GitHub
2 changed files with 18 additions and 4 deletions

View File

@@ -1000,20 +1000,33 @@ class FilesDB with SqlDbBase {
final batch = localIDsList.sublist(i, endIndex);
final placeholders = List.filled(batch.length, '?').join(',');
final List<String> alreadyUploaded = [];
// find localIDs that are already uploaded
final result = await db.execute('''
SELECT DISTINCT $columnLocalID
FROM $filesTable
WHERE $columnLocalID IN ($placeholders)
AND ($columnUploadedFileID IS NOT NULL AND $columnUploadedFileID != -1)
''');
for (final row in result) {
alreadyUploaded.add(row[columnLocalID] as String);
}
final uploadedPlaceholders =
alreadyUploaded.map((id) => "'$id'").join(',');
final r = await db.execute(
'''
DELETE FROM $filesTable
WHERE $columnLocalID IN ($placeholders)
AND ($columnCollectionID IS NULL OR $columnCollectionID = -1)
WHERE $columnLocalID IN ($uploadedPlaceholders)
AND ($columnUploadedFileID IS NULL OR $columnUploadedFileID = -1)
''',
batch,
);
if (r.isNotEmpty) {
_logger
.fine("Batch ${(i ~/ batchSize) + 1}: Removed ${r.length} files");
_logger.warning(
"Batch ${(i ~/ batchSize) + 1}: Removed duplicate ${r.length} files",
);
totalRemoved += r.length;
}
}

View File

@@ -1,3 +1,4 @@
- Neeraj: Fix for double enteries for local file
- (prtk) Fix widget initial launch on iOS
- (prtk) Upgrade Flutter version to 3.32.8
- (prtk) Run FFMpeg in an isolate