1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Add largely untested APIs for rebasing changesets.

FossilOrigin-Name: 39915b683b3f8d3bf872af1dede96bf2818b488a8638a1d248395023fc4bd0ef
This commit is contained in:
dan
2018-03-14 21:06:58 +00:00
parent a38e6c57bc
commit c0a499eaad
5 changed files with 314 additions and 22 deletions

View File

@ -1216,6 +1216,27 @@ int sqlite3changeset_apply_v2(
#define SQLITE_CHANGESET_REPLACE 1
#define SQLITE_CHANGESET_ABORT 2
typedef struct sqlite3_rebaser sqlite3_rebaser;
/* Create a new rebaser object */
int sqlite3rebaser_create(sqlite3_rebaser **ppNew);
/* Call this one or more times to configure a rebaser */
int sqlite3rebaser_configure(
sqlite3_rebaser*,
int nRebase, const void *pRebase
);
/* Rebase a changeset according to current rebaser configuration */
int sqlite3rebaser_rebase(
sqlite3_rebaser*,
int nIn, const void *pIn,
int *pnOut, void **ppOut
);
/* Destroy a rebaser object */
void sqlite3rebaser_destroy(sqlite3_rebaser *p);
/*
** CAPI3REF: Streaming Versions of API functions.
**
@ -1373,6 +1394,13 @@ int sqlite3changegroup_output_strm(sqlite3_changegroup*,
int (*xOutput)(void *pOut, const void *pData, int nData),
void *pOut
);
int sqlite3rebaser_rebase_strm(
sqlite3_rebaser *pRebaser,
int (*xInput)(void *pIn, void *pData, int *pnData),
void *pIn,
int (*xOutput)(void *pOut, const void *pData, int nData),
void *pOut
);
/*