Invert A Changeset
Invert A Changeset
int sqlite3changeset_invert( int nIn, const void *pIn, /* Input changeset */ int *pnOut, void **ppOut /* OUT: Inverse of input */ );
This function is used to "invert" a changeset object. Applying an inverted changeset to a database reverses the effects of applying the uninverted changeset. Specifically:
- Each DELETE change is changed to an INSERT, and
- Each INSERT change is changed to a DELETE, and
- For each UPDATE change, the old.* and new.* values are exchanged.
This function does not change the order in which changes appear within the changeset. It merely reverses the sense of each individual change.
If successful, a pointer to a buffer containing the inverted changeset is stored in *ppOut, the size of the same buffer is stored in *pnOut, and SQLITE_OK is returned. If an error occurs, both *pnOut and *ppOut are zeroed and an SQLite e