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