Add the -vacuum switch to the "rbu" demonstration program.
FossilOrigin-Name: 9a0078a538c7e73a009960347b8953c5af99fefd
This commit is contained in:
parent
2bb5f4478e
commit
303a094466
@ -24,12 +24,22 @@
|
|||||||
*/
|
*/
|
||||||
void usage(const char *zArgv0){
|
void usage(const char *zArgv0){
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Usage: %s [-step NSTEP] TARGET-DB RBU-DB\n"
|
"Usage: %s ?OPTIONS? TARGET-DB RBU-DB\n"
|
||||||
"\n"
|
"\n"
|
||||||
" Argument RBU-DB must be an RBU database containing an update suitable for\n"
|
"Where options are:\n"
|
||||||
" target database TARGET-DB. If NSTEP is set to less than or equal to zero\n"
|
"\n"
|
||||||
" (the default value), this program attempts to apply the entire update to\n"
|
" -step NSTEP\n"
|
||||||
" the target database.\n"
|
" -vacuum\n"
|
||||||
|
"\n"
|
||||||
|
" If the -vacuum switch is not present, argument RBU-DB must be an RBU\n"
|
||||||
|
" database containing an update suitable for target database TARGET-DB.\n"
|
||||||
|
" Or, if -vacuum is specified, then TARGET-DB is a database to vacuum using\n"
|
||||||
|
" RBU, and RBU-DB is used as the state database for the vacuum (refer to\n"
|
||||||
|
" API documentation for details).\n"
|
||||||
|
"\n"
|
||||||
|
" If NSTEP is set to less than or equal to zero (the default value), this \n"
|
||||||
|
" program attempts to perform the entire update or vacuum operation before\n"
|
||||||
|
" exiting\n"
|
||||||
"\n"
|
"\n"
|
||||||
" If NSTEP is greater than zero, then a maximum of NSTEP calls are made\n"
|
" If NSTEP is greater than zero, then a maximum of NSTEP calls are made\n"
|
||||||
" to sqlite3rbu_step(). If the RBU update has not been completely applied\n"
|
" to sqlite3rbu_step(). If the RBU update has not been completely applied\n"
|
||||||
@ -69,29 +79,43 @@ int main(int argc, char **argv){
|
|||||||
char *zErrmsg; /* Error message, if any */
|
char *zErrmsg; /* Error message, if any */
|
||||||
sqlite3rbu *pRbu; /* RBU handle */
|
sqlite3rbu *pRbu; /* RBU handle */
|
||||||
int nStep = 0; /* Maximum number of step() calls */
|
int nStep = 0; /* Maximum number of step() calls */
|
||||||
|
int bVacuum = 0;
|
||||||
int rc;
|
int rc;
|
||||||
sqlite3_int64 nProgress = 0;
|
sqlite3_int64 nProgress = 0;
|
||||||
|
int nArg = argc-2;
|
||||||
|
|
||||||
/* Process command line arguments. Following this block local variables
|
if( argc<3 ) usage(argv[0]);
|
||||||
** zTarget, zRbu and nStep are all set. */
|
for(i=1; i<nArg; i++){
|
||||||
if( argc==5 ){
|
const char *zArg = argv[i];
|
||||||
size_t nArg1 = strlen(argv[1]);
|
int nArg = strlen(zArg);
|
||||||
if( nArg1>5 || nArg1<2 || memcmp("-step", argv[1], nArg1) ) usage(argv[0]);
|
if( nArg>1 && nArg<=8 && 0==memcmp(zArg, "-vacuum", nArg) ){
|
||||||
nStep = atoi(argv[2]);
|
bVacuum = 1;
|
||||||
}else if( argc!=3 ){
|
}else if( nArg>1 && nArg<=5 && 0==memcmp(zArg, "-step", nArg) && i<nArg-1 ){
|
||||||
usage(argv[0]);
|
i++;
|
||||||
|
nStep = atoi(argv[i]);
|
||||||
|
}else{
|
||||||
|
usage(argv[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zTarget = argv[argc-2];
|
zTarget = argv[argc-2];
|
||||||
zRbu = argv[argc-1];
|
zRbu = argv[argc-1];
|
||||||
|
|
||||||
report_default_vfs();
|
report_default_vfs();
|
||||||
|
|
||||||
/* Open an RBU handle. If nStep is less than or equal to zero, call
|
/* Open an RBU handle. A vacuum handle if -vacuum was specified, or a
|
||||||
|
** regular RBU update handle otherwise. */
|
||||||
|
if( bVacuum ){
|
||||||
|
pRbu = sqlite3rbu_vacuum(zTarget, zRbu);
|
||||||
|
}else{
|
||||||
|
pRbu = sqlite3rbu_open(zTarget, zRbu, 0);
|
||||||
|
}
|
||||||
|
report_rbu_vfs(pRbu);
|
||||||
|
|
||||||
|
/* If nStep is less than or equal to zero, call
|
||||||
** sqlite3rbu_step() until either the RBU has been completely applied
|
** sqlite3rbu_step() until either the RBU has been completely applied
|
||||||
** or an error occurs. Or, if nStep is greater than zero, call
|
** or an error occurs. Or, if nStep is greater than zero, call
|
||||||
** sqlite3rbu_step() a maximum of nStep times. */
|
** sqlite3rbu_step() a maximum of nStep times. */
|
||||||
pRbu = sqlite3rbu_open(zTarget, zRbu, 0);
|
|
||||||
report_rbu_vfs(pRbu);
|
|
||||||
for(i=0; (nStep<=0 || i<nStep) && sqlite3rbu_step(pRbu)==SQLITE_OK; i++);
|
for(i=0; (nStep<=0 || i<nStep) && sqlite3rbu_step(pRbu)==SQLITE_OK; i++);
|
||||||
nProgress = sqlite3rbu_progress(pRbu);
|
nProgress = sqlite3rbu_progress(pRbu);
|
||||||
rc = sqlite3rbu_close(pRbu, &zErrmsg);
|
rc = sqlite3rbu_close(pRbu, &zErrmsg);
|
||||||
|
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Changes\sso\sthat\srbu\svacuum\sworks\swith\szipvfs\sdatabases.
|
C Add\sthe\s-vacuum\sswitch\sto\sthe\s"rbu"\sdemonstration\sprogram.
|
||||||
D 2016-04-16T19:02:53.248
|
D 2016-04-18T09:17:05.073
|
||||||
F Makefile.in eba680121821b8a60940a81454316f47a341487a
|
F Makefile.in eba680121821b8a60940a81454316f47a341487a
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 71b8b16cf9393f68e2e2035486ca104872558836
|
F Makefile.msc 71b8b16cf9393f68e2e2035486ca104872558836
|
||||||
@ -222,7 +222,7 @@ F ext/misc/totype.c 4a167594e791abeed95e0a8db028822b5e8fe512
|
|||||||
F ext/misc/vfslog.c fe40fab5c077a40477f7e5eba994309ecac6cc95
|
F ext/misc/vfslog.c fe40fab5c077a40477f7e5eba994309ecac6cc95
|
||||||
F ext/misc/vtshim.c babb0dc2bf116029e3e7c9a618b8a1377045303e
|
F ext/misc/vtshim.c babb0dc2bf116029e3e7c9a618b8a1377045303e
|
||||||
F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212
|
F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212
|
||||||
F ext/rbu/rbu.c ba3983dceffa0938532e79142f391737513de023
|
F ext/rbu/rbu.c b2c0b5e6ae1a89affc0edfc127ebfa5f637a0ce4
|
||||||
F ext/rbu/rbu1.test 42bd835e019eff789ec241017965277baeb658b1
|
F ext/rbu/rbu1.test 42bd835e019eff789ec241017965277baeb658b1
|
||||||
F ext/rbu/rbu10.test 046b0980041d30700464a800bbf6733ed2df515d
|
F ext/rbu/rbu10.test 046b0980041d30700464a800bbf6733ed2df515d
|
||||||
F ext/rbu/rbu11.test 9bc68c2d3dbeb1720153626e3bd0466dcc017702
|
F ext/rbu/rbu11.test 9bc68c2d3dbeb1720153626e3bd0466dcc017702
|
||||||
@ -1483,7 +1483,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P dc19aacc7e99213edca9bb57b5c11a8a1ac99113
|
P bae7f875f476f6e01112751cb404fef42ba0a01c
|
||||||
R 51e4311e92cd324079b6a63abfa03656
|
R 446c70a62698b2fec86a1f84d13dd5af
|
||||||
U dan
|
U dan
|
||||||
Z c0a4c5c182b536f7f5ddad73d82153a8
|
Z be7942fa7aee76e8d89cc36d886361a8
|
||||||
|
@ -1 +1 @@
|
|||||||
bae7f875f476f6e01112751cb404fef42ba0a01c
|
9a0078a538c7e73a009960347b8953c5af99fefd
|
Loading…
x
Reference in New Issue
Block a user