Setting eagerError may cause the transaction to end before all future returns

This commit is contained in:
Ming Ming 2022-07-26 14:11:12 +08:00
parent 2df27502f1
commit 84264dad20

View file

@ -264,8 +264,7 @@ class FileSqliteCacheUpdater {
.map((r) => MapEntry(r.read(db.files.fileId)!, r.read(db.files.rowId)!))
.get());
await Future.wait(
sqlFiles.map((f) async {
await Future.wait(sqlFiles.map((f) async {
var rowId = fileRowIdMap[f.file.fileId.value];
if (rowId != null) {
// shared file that exists in other accounts
@ -275,9 +274,8 @@ class FileSqliteCacheUpdater {
);
rowId = dbFile.rowId;
}
final dbAccountFile = await db
.into(db.accountFiles)
.insertReturning(f.accountFile.copyWith(
final dbAccountFile =
await db.into(db.accountFiles).insertReturning(f.accountFile.copyWith(
account: sql.Value(dbAccount.rowId),
file: sql.Value(rowId),
));
@ -291,9 +289,7 @@ class FileSqliteCacheUpdater {
.insert(f.trash!.copyWith(file: sql.Value(rowId)));
}
_onRowCached(rowId, f, dir);
}),
eagerError: true,
);
}));
}
void _onRowCached(int rowId, sql.CompleteFileCompanion dbFile, File? dir) {