xref: /netbsd-src/external/public-domain/sqlite/man/SQLITE_CHANGESET_OMIT.3 (revision b9988867a8ad969c45a52aa7628bc932ec98d46b)
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