aboutsummaryrefslogtreecommitdiff
path: root/ext/session/sqlite3session.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/session/sqlite3session.h')
-rw-r--r--ext/session/sqlite3session.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/ext/session/sqlite3session.h b/ext/session/sqlite3session.h
index de4ee77b9..a6af9aca5 100644
--- a/ext/session/sqlite3session.h
+++ b/ext/session/sqlite3session.h
@@ -275,6 +275,26 @@ int sqlite3session_changeset(
/*
** CAPI3REF: Generate A Patchset From A Session Object
+**
+** The differences between a patchset and a changeset are that:
+**
+** <ul>
+** <li> DELETE records consist of the primary key fields only. The
+** original values of other fields are omitted.
+** <li> The original values of any modified fields are omitted from
+** UPDATE records.
+** </ul>
+**
+** A patchset blob may be used with up to date versions of all
+** sqlite3changeset_xxx API functions except for sqlite3changeset_invert(),
+** which returns SQLITE_CORRUPT if it is passed a patchset. Similarly,
+** attempting to use a patchset blob with old versions of the
+** sqlite3changeset_xxx APIs also provokes an SQLITE_CORRUPT error.
+**
+** Because the non-primary key "old.*" fields are omitted, no
+** SQLITE_CHANGESET_DATA conflicts can be detected or reported if a patchset
+** is passed to the sqlite3changeset_apply() API. Other conflict types work
+** in the same way as for changesets.
*/
int sqlite3session_patchset(
sqlite3_session *pSession, /* Session object */