[mob][photos] Better db query

This commit is contained in:
laurenspriem 2024-05-16 16:36:32 +05:30
parent e9392d8f33
commit 7f358c4bff
2 changed files with 14 additions and 18 deletions

View file

@ -130,18 +130,12 @@ class FaceMLDataDB {
/// Returns a map of fileID to the indexed ML version
Future<Map<int, int>> getIndexedFileIds({int? minimumMlVersion}) async {
final db = await instance.asyncDB;
late final String query;
String query = '''
SELECT $fileIDColumn, $mlVersionColumn
FROM $facesTable
''';
if (minimumMlVersion != null) {
query = '''
SELECT $fileIDColumn, $mlVersionColumn
FROM $facesTable
WHERE $mlVersionColumn >= $minimumMlVersion
''';
} else {
query = '''
SELECT $fileIDColumn, $mlVersionColumn
FROM $facesTable
''';
query += ' WHERE $mlVersionColumn >= $minimumMlVersion';
}
final List<Map<String, dynamic>> maps = await db.getAll(query);
final Map<int, int> result = {};
@ -151,11 +145,14 @@ class FaceMLDataDB {
return result;
}
Future<int> getIndexedFileCount() async {
Future<int> getIndexedFileCount({int? minimumMlVersion}) async {
final db = await instance.asyncDB;
final List<Map<String, dynamic>> maps = await db.getAll(
'SELECT COUNT(DISTINCT $fileIDColumn) as count FROM $facesTable',
);
String query =
'SELECT COUNT(DISTINCT $fileIDColumn) as count FROM $facesTable';
if (minimumMlVersion != null) {
query += ' WHERE $mlVersionColumn >= $minimumMlVersion';
}
final List<Map<String, dynamic>> maps = await db.getAll(query);
return maps.first['count'] as int;
}

View file

@ -1424,9 +1424,8 @@ class FaceMlService {
indexableFiles.add(enteFile);
}
final Map<int, int> alreadyIndexedFiles = await FaceMLDataDB.instance
.getIndexedFileIds(minimumMlVersion: faceMlVersion);
final int alreadyIndexedCount = alreadyIndexedFiles.length;
final int alreadyIndexedCount = await FaceMLDataDB.instance
.getIndexedFileCount(minimumMlVersion: faceMlVersion);
final int totalIndexableCount = indexableFiles.length;
final ratio = alreadyIndexedCount / totalIndexableCount;
w?.log('getIndexedDoneRatio');