Skip to content

Commit a3c6797

Browse files
committed
fix update statement when set and where contain same keys
1 parent 389f421 commit a3c6797

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/src/database_access.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,21 @@ class DatabaseTransactionBase<TABLES extends TablesBase> {
5555
}) async {
5656
_assertColumnNames(set);
5757
_assertColumnNames(where);
58-
assert(!where.keys.any((key) => set.containsKey(key)));
58+
// assert(!where.keys.any((key) => set.containsKey(key)));
5959
assert(!where.values.contains(null), 'where values must not be null.');
6060
assert(!setContainsOptional || set.values.whereType<Optional>().isEmpty);
6161
if (setContainsOptional) {
6262
set = flattenOptionals(set);
6363
}
6464
final setStatement =
65-
set.entries.map((e) => '${e.key} = @${e.key}').join(',');
65+
set.entries.map((e) => '${e.key} = @s${e.key}').join(',');
6666
final whereStatement =
67-
where.entries.map((e) => '${e.key} = @${e.key}').join(' AND ');
67+
where.entries.map((e) => '${e.key} = @w${e.key}').join(' AND ');
6868
return await execute(
6969
'UPDATE $table SET $setStatement WHERE $whereStatement',
7070
values: {
71-
...set,
72-
...where,
71+
...set.map((key, value) => MapEntry('s$key', value)),
72+
...where.map((key, value) => MapEntry('w$key', value)),
7373
},
7474
expectedResultCount: 1);
7575
}

0 commit comments

Comments
 (0)