diff options
Diffstat (limited to 'static/netbsd/man3/sqlite3changegroup_add.3')
| -rw-r--r-- | static/netbsd/man3/sqlite3changegroup_add.3 | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3changegroup_add.3 b/static/netbsd/man3/sqlite3changegroup_add.3 new file mode 100644 index 00000000..d93d6563 --- /dev/null +++ b/static/netbsd/man3/sqlite3changegroup_add.3 @@ -0,0 +1,89 @@ +.Dd January 24, 2024 +.Dt SQLITE3CHANGEGROUP_ADD 3 +.Os +.Sh NAME +.Nm sqlite3changegroup_add +.Nd add a changeset to a changegroup +.Sh SYNOPSIS +.In sqlite3.h +.Ft int +.Fo sqlite3changegroup_add +.Fa "sqlite3_changegroup*" +.Fa "int nData" +.Fa "void *pData" +.Fc +.Sh DESCRIPTION +Add all changes within the changeset (or patchset) in buffer pData +(size nData bytes) to the changegroup. +.Pp +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. +.Pp +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. +.Pp +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: +.Pp + 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. +.Pp +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. +.Pp +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. +.Pp +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. +.Sh IMPLEMENTATION NOTES +These declarations were extracted from the +interface documentation at line 11900. +.Bd -literal +SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData); +.Ed |
