From 63847496f14c813a5d80efd5b7de0f1294ffe1e3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 16:07:11 +0200 Subject: Adding upstream version 3.45.1. Signed-off-by: Daniel Baumann --- www/session/sqlite3changegroup_add.html | 200 ++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 www/session/sqlite3changegroup_add.html (limited to 'www/session/sqlite3changegroup_add.html') diff --git a/www/session/sqlite3changegroup_add.html b/www/session/sqlite3changegroup_add.html new file mode 100644 index 0000000..99de188 --- /dev/null +++ b/www/session/sqlite3changegroup_add.html @@ -0,0 +1,200 @@ + + + + + +Add A Changeset To A Changegroup + + + +
+ + + +
+
+Small. Fast. Reliable.
Choose any three. +
+ + +
+
+ + + +
+
+
+ +

Session Module C Interface

Add A Changeset To A Changegroup

int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);
+

+Add all changes within the changeset (or patchset) in buffer pData (size +nData bytes) to the changegroup.

+ +

If the buffer contains a patchset, then all prior calls to this function +on the same changegroup object must also have specified patchsets. Or, if +the buffer contains a changeset, so must have the earlier calls to this +function. Otherwise, SQLITE_ERROR is returned and no changes are added +to the changegroup.

+ +

Rows within the changeset and changegroup are identified by the values in +their PRIMARY KEY columns. A change in the changeset is considered to +apply to the same row as a change already present in the changegroup if +the two rows have the same primary key.

+ +

Changes to rows that do not already appear in the changegroup are +simply copied into it. Or, if both the new changeset and the changegroup +contain changes that apply to a single row, the final contents of the +changegroup depends on the type of each change, as follows:

+ +

+ + +
Existing Change New Change Output Change +
INSERT INSERT + The new change is ignored. This case does not occur if the new + changeset was recorded immediately after the changesets already + added to the changegroup. +
INSERT UPDATE + The INSERT change remains in the changegroup. The values in the + INSERT change are modified as if the row was inserted by the + existing change and then updated according to the new change. +
INSERT DELETE + The existing INSERT is removed from the changegroup. The DELETE is + not added. +
UPDATE INSERT + The new change is ignored. This case does not occur if the new + changeset was recorded immediately after the changesets already + added to the changegroup. +
UPDATE UPDATE + The existing UPDATE remains within the changegroup. It is amended + so that the accompanying values are as if the row was updated once + by the existing change and then again by the new change. +
UPDATE DELETE + The existing UPDATE is replaced by the new DELETE within the + changegroup. +
DELETE INSERT + If one or more of the column values in the row inserted by the + new change differ from those in the row deleted by the existing + change, the existing DELETE is replaced by an UPDATE within the + changegroup. Otherwise, if the inserted row is exactly the same + as the deleted row, the existing DELETE is simply discarded. +
DELETE UPDATE + The new change is ignored. This case does not occur if the new + changeset was recorded immediately after the changesets already + added to the changegroup. +
DELETE DELETE + The new change is ignored. This case does not occur if the new + changeset was recorded immediately after the changesets already + added to the changegroup. +

+ +

If the new changeset contains changes to a table that is already present +in the changegroup, then the number of columns and the position of the +primary key columns for the table must be consistent. If this is not the +case, this function fails with SQLITE_SCHEMA. Except, if the changegroup +object has been configured with a database schema using the +sqlite3changegroup_schema() API, then it is possible to combine changesets +with different numbers of columns for a single table, provided that +they are otherwise compatible.

+ +

If the input changeset appears to be corrupt and the corruption is +detected, SQLITE_CORRUPT is returned. Or, if an out-of-memory condition +occurs during processing, this function returns SQLITE_NOMEM.

+ +

In all cases, if an error occurs the state of the final contents of the +changegroup is undefined. If no error occurs, SQLITE_OK is returned. +

See also lists of + Objects, + Constants, and + Functions.

+ -- cgit v1.2.3