xref: /netbsd-src/external/public-domain/sqlite/man/sqlite3session_patchset.3 (revision 82d56013d7b633d116a93943de88e08335357a7c)
1.Dd December 19, 2018
2.Dt SQLITE3SESSION_PATCHSET 3
3.Os
4.Sh NAME
5.Nm sqlite3session_patchset
6.Nd Generate A Patchset From A Session Object
7.Sh SYNOPSIS
8.Ft int
9.Fo sqlite3session_patchset
10.Fa "sqlite3_session *pSession"
11.Fa "int *pnPatchset"
12.Fa "void **ppPatchset               "
13.Fc
14.Sh DESCRIPTION
15The differences between a patchset and a changeset are that:
16.Bl -bullet
17.It
18DELETE records consist of the primary key fields only.
19The original values of other fields are omitted.
20.It
21The original values of any modified fields are omitted from UPDATE
22records.
23.El
24.Pp
25A patchset blob may be used with up to date versions of all sqlite3changeset_xxx
26API functions except for sqlite3changeset_invert(), which returns SQLITE_CORRUPT
27if it is passed a patchset.
28Similarly, attempting to use a patchset blob with old versions of the
29sqlite3changeset_xxx APIs also provokes an SQLITE_CORRUPT error.
30.Pp
31Because the non-primary key "old.*" fields are omitted, no SQLITE_CHANGESET_DATA
32conflicts can be detected or reported if a patchset is passed to the
33sqlite3changeset_apply() API.
34Other conflict types work in the same way as for changesets.
35.Pp
36Changes within a patchset are ordered in the same way as for changesets
37generated by the sqlite3session_changeset() function (i.e.
38all changes for a single table are grouped together, tables appear
39in the order in which they were attached to the session object).
40