xref: /netbsd-src/external/public-domain/sqlite/man/SQLITE_CHANGESET_OMIT.3 (revision 8ecbf5f02b752fcb7debe1a8fab1dc82602bc760)
1.Dd December 19, 2018
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.Fd #define SQLITE_CHANGESET_OMIT
11.Fd #define SQLITE_CHANGESET_REPLACE
12.Fd #define SQLITE_CHANGESET_ABORT
13.Sh DESCRIPTION
14A conflict handler callback must return one of the following three
15values.
16.Bl -tag -width Ds
17.It SQLITE_CHANGESET_OMITIf a conflict handler returns this value no special
18action is taken.
19The change that caused the conflict is not applied.
20The session module continues to the next change in the changeset.
21.It SQLITE_CHANGESET_REPLACEThis value may only be returned if the second
22argument to the conflict handler was SQLITE_CHANGESET_DATA or SQLITE_CHANGESET_CONFLICT.
23If this is not the case, any changes applied so far are rolled back
24and the call to sqlite3changeset_apply() returns SQLITE_MISUSE.
25.Pp
26If CHANGESET_REPLACE is returned by an SQLITE_CHANGESET_DATA conflict
27handler, then the conflicting row is either updated or deleted, depending
28on the type of change.
29.Pp
30If CHANGESET_REPLACE is returned by an SQLITE_CHANGESET_CONFLICT conflict
31handler, then the conflicting row is removed from the database and
32a second attempt to apply the change is made.
33If this second attempt fails, the original row is restored to the database
34before continuing.
35.It SQLITE_CHANGESET_ABORTIf this value is returned, any changes applied
36so far are rolled back and the call to sqlite3changeset_apply() returns
37SQLITE_ABORT.
38.El
39.Pp
40