[mob][photos] Create ConflictAlgorithm enum and stop using it from sqflite

This commit is contained in:
ashilkn 2024-05-17 16:40:59 +05:30
parent 18d68bbdf3
commit ab9cef689d
2 changed files with 41 additions and 1 deletions

View file

@ -16,7 +16,8 @@ import "package:photos/models/metadata/common_keys.dart";
import "package:photos/services/filter/db_filters.dart";
import 'package:photos/utils/file_uploader_util.dart';
import "package:photos/utils/primitive_wrapper.dart";
import 'package:sqflite/sqflite.dart';
import "package:photos/utils/sqlite_util.dart";
// import 'package:sqflite/sqflite.dart';
import 'package:sqlite_async/sqlite_async.dart' as sqlite_async;
class FilesDB {

View file

@ -0,0 +1,39 @@
enum ConflictAlgorithm {
/// When a constraint violation occurs, an immediate ROLLBACK occurs,
/// thus ending the current transaction, and the command aborts with a
/// return code of SQLITE_CONSTRAINT. If no transaction is active
/// (other than the implied transaction that is created on every command)
/// then this algorithm works the same as ABORT.
rollback,
/// When a constraint violation occurs,no ROLLBACK is executed
/// so changes from prior commands within the same transaction
/// are preserved. This is the default behavior.
abort,
/// When a constraint violation occurs, the command aborts with a return
/// code SQLITE_CONSTRAINT. But any changes to the database that
/// the command made prior to encountering the constraint violation
/// are preserved and are not backed out.
fail,
/// When a constraint violation occurs, the one row that contains
/// the constraint violation is not inserted or changed.
/// But the command continues executing normally. Other rows before and
/// after the row that contained the constraint violation continue to be
/// inserted or updated normally. No error is returned.
ignore,
/// When a UNIQUE constraint violation occurs, the pre-existing rows that
/// are causing the constraint violation are removed prior to inserting
/// or updating the current row. Thus the insert or update always occurs.
/// The command continues executing normally. No error is returned.
/// If a NOT NULL constraint violation occurs, the NULL value is replaced
/// by the default value for that column. If the column has no default
/// value, then the ABORT algorithm is used. If a CHECK constraint
/// violation occurs then the IGNORE algorithm is used. When this conflict
/// resolution strategy deletes rows in order to satisfy a constraint,
/// it does not invoke delete triggers on those rows.
/// This behavior might change in a future release.
replace,
}