1 .Dd April 29, 2026 2 .Dt SQLITE_CHANGESET_OMIT 3 3 .Os 4 .Sh NAME 5 .Nm SQLITE_CHANGESET_OMIT , 6 .Nm SQLITE_CHANGESET_REPLACE , 7 .Nm SQLITE_CHANGESET_ABORT 8 .Nd constants returned by the conflict handler 9 .Sh SYNOPSIS 10 .In sqlite3.h 11 .Fd #define SQLITE_CHANGESET_OMIT 12 .Fd #define SQLITE_CHANGESET_REPLACE 13 .Fd #define SQLITE_CHANGESET_ABORT 14 .Sh DESCRIPTION 15 A conflict handler callback must return one of the following three 16 values. 17 .Bl -tag -width Ds 18 .It SQLITE_CHANGESET_OMIT 19 If a conflict handler returns this value no special action is taken. 20 The change that caused the conflict is not applied. 21 The session module continues to the next change in the changeset. 22 .It SQLITE_CHANGESET_REPLACE 23 This value may only be returned if the second argument to the conflict 24 handler was SQLITE_CHANGESET_DATA or SQLITE_CHANGESET_CONFLICT. 25 If this is not the case, any changes applied so far are rolled back 26 and the call to sqlite3changeset_apply() returns SQLITE_MISUSE. 27 .Pp 28 If CHANGESET_REPLACE is returned by an SQLITE_CHANGESET_DATA conflict 29 handler, then the conflicting row is either updated or deleted, depending 30 on the type of change. 31 .Pp 32 If CHANGESET_REPLACE is returned by an SQLITE_CHANGESET_CONFLICT conflict 33 handler, then the conflicting row is removed from the database and 34 a second attempt to apply the change is made. 35 If this second attempt fails, the original row is restored to the database 36 before continuing. 37 .It SQLITE_CHANGESET_ABORT 38 If this value is returned, any changes applied so far are rolled back 39 and the call to sqlite3changeset_apply() returns SQLITE_ABORT. 40 .El 41 .Pp 42 .Sh IMPLEMENTATION NOTES 43 These declarations were extracted from the 44 interface documentation at line 12924. 45 .Bd -literal 46 #define SQLITE_CHANGESET_OMIT 0 47 #define SQLITE_CHANGESET_REPLACE 1 48 #define SQLITE_CHANGESET_ABORT 2 49 .Ed 50