Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Add the --deanalyze option to "fossil rebuild" for removing ANALYZE results. We really don't want ANALYZE run on a repository because all the queries are tuned to work without it. Add the ability to pass rebuild arguments to "fossil all rebuild". |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
85233c40c9bb05a87574cdc25402ec0d |
| User & Date: | drh 2012-10-26 21:34:28.374 |
Context
|
2012-10-27
| ||
| 03:19 | Update the diff-test-1 document with a pointer to a difficult indentation change. ... (check-in: 80b6020692 user: drh tags: trunk) | |
|
2012-10-26
| ||
| 21:34 | Add the --deanalyze option to "fossil rebuild" for removing ANALYZE results. We really don't want ANALYZE run on a repository because all the queries are tuned to work without it. Add the ability to pass rebuild arguments to "fossil all rebuild". ... (check-in: 85233c40c9 user: drh tags: trunk) | |
| 20:46 | Force the correct join order on timeline generation using a CROSS JOIN. ... (check-in: 60b409322a user: drh tags: trunk) | |
Changes
Changes to src/allrepo.c.
| ︙ | ︙ | |||
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
if( needQuote ){
return mprintf("\"%s\"", zFilename);
}else{
return mprintf("%s", zFilename);
}
}
/*
** COMMAND: all
**
** Usage: %fossil all (list|ls|pull|push|rebuild|sync)
**
** The ~/.fossil file records the location of all repositories for a
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
if( needQuote ){
return mprintf("\"%s\"", zFilename);
}else{
return mprintf("%s", zFilename);
}
}
/*
** Build a string that contains all of the command-line options
** specified as arguments. If the option name begins with "+" then
** it takes an argument. Without the "+" it does not.
*/
static const char *collect_arguments(const char *zArg, ...){
va_list ap;
Blob res;
blob_zero(&res);
va_start(ap, zArg);
while( zArg!=0 ){
if( zArg[0]=='+' ){
const char *zValue = find_option(&zArg[1], 0, 1);
if( zValue ){
blob_appendf(&res, " --%s %s", &zArg[1], zValue);
}
}else{
if( find_option(zArg, 0, 0)!=0 ){
blob_appendf(&res, " --%s", zArg);
}
}
zArg = va_arg(ap, const char*);
}
if( blob_size(&res)==0 ){
return "";
}else{
return blob_str(&res);
}
}
/*
** COMMAND: all
**
** Usage: %fossil all (list|ls|pull|push|rebuild|sync)
**
** The ~/.fossil file records the location of all repositories for a
|
| ︙ | ︙ | |||
87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
void all_cmd(void){
int n;
Stmt q;
const char *zCmd;
char *zSyscmd;
char *zFossil;
char *zQFilename;
int useCheckouts = 0;
int quiet = 0;
int testRun = 0;
int stopOnError = find_option("dontstop",0,0)==0;
int rc;
Bag outOfDate;
| > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
void all_cmd(void){
int n;
Stmt q;
const char *zCmd;
char *zSyscmd;
char *zFossil;
char *zQFilename;
const char *zExtra = "";
int useCheckouts = 0;
int quiet = 0;
int testRun = 0;
int stopOnError = find_option("dontstop",0,0)==0;
int rc;
Bag outOfDate;
|
| ︙ | ︙ | |||
115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
useCheckouts = find_option("ckout","c",0)!=0;
}else if( strncmp(zCmd, "push", n)==0 ){
zCmd = "push -autourl -R";
}else if( strncmp(zCmd, "pull", n)==0 ){
zCmd = "pull -autourl -R";
}else if( strncmp(zCmd, "rebuild", n)==0 ){
zCmd = "rebuild";
}else if( strncmp(zCmd, "sync", n)==0 ){
zCmd = "sync -autourl -R";
}else if( strncmp(zCmd, "test-integrity", n)==0 ){
zCmd = "test-integrity";
}else if( strncmp(zCmd, "changes", n)==0 ){
zCmd = "changes --quiet --header --chdir";
useCheckouts = 1;
| > > | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
useCheckouts = find_option("ckout","c",0)!=0;
}else if( strncmp(zCmd, "push", n)==0 ){
zCmd = "push -autourl -R";
}else if( strncmp(zCmd, "pull", n)==0 ){
zCmd = "pull -autourl -R";
}else if( strncmp(zCmd, "rebuild", n)==0 ){
zCmd = "rebuild";
zExtra = collect_arguments("cluster","compress","noverify","+pagesize",
"vacuum","deanalyze","wal","stats", 0);
}else if( strncmp(zCmd, "sync", n)==0 ){
zCmd = "sync -autourl -R";
}else if( strncmp(zCmd, "test-integrity", n)==0 ){
zCmd = "test-integrity";
}else if( strncmp(zCmd, "changes", n)==0 ){
zCmd = "changes --quiet --header --chdir";
useCheckouts = 1;
|
| ︙ | ︙ | |||
178 179 180 181 182 183 184 |
continue;
}
if( zCmd[0]=='l' ){
fossil_print("%s\n", zFilename);
continue;
}
zQFilename = quoteFilename(zFilename);
| | | 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
continue;
}
if( zCmd[0]=='l' ){
fossil_print("%s\n", zFilename);
continue;
}
zQFilename = quoteFilename(zFilename);
zSyscmd = mprintf("%s %s %s%s", zFossil, zCmd, zQFilename, zExtra);
if( !quiet || testRun ){
fossil_print("%s\n", zSyscmd);
fflush(stdout);
}
rc = testRun ? 0 : fossil_system(zSyscmd);
free(zSyscmd);
free(zQFilename);
|
| ︙ | ︙ |
Changes to src/rebuild.c.
| ︙ | ︙ | |||
521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 |
** --cluster Compute clusters for unclustered artifacts
** --compress Strive to make the database as small as possible
** --force Force the rebuild to complete even if errors are seen
** --noverify Skip the verification of changes to the BLOB table
** --pagesize N Set the database pagesize to N. (512..65536 and power of 2)
** --randomize Scan artifacts in a random order
** --vacuum Run VACUUM on the database after rebuilding
** --wal Set Write-Ahead-Log journalling mode on the database
** --stats Show artifact statistics after rebuilding
**
** See also: deconstruct, reconstruct
*/
void rebuild_database(void){
int forceFlag;
int randomizeFlag;
int errCnt;
int omitVerify;
int doClustering;
const char *zPagesize;
int newPagesize = 0;
int activateWal;
int runVacuum;
int runCompress;
int showStats;
omitVerify = find_option("noverify",0,0)!=0;
forceFlag = find_option("force","f",0)!=0;
randomizeFlag = find_option("randomize", 0, 0)!=0;
doClustering = find_option("cluster", 0, 0)!=0;
runVacuum = find_option("vacuum",0,0)!=0;
runCompress = find_option("compress",0,0)!=0;
zPagesize = find_option("pagesize",0,1);
showStats = find_option("stats",0,0)!=0;
if( zPagesize ){
newPagesize = atoi(zPagesize);
if( newPagesize<512 || newPagesize>65536
|| (newPagesize&(newPagesize-1))!=0
| > > > | 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 |
** --cluster Compute clusters for unclustered artifacts
** --compress Strive to make the database as small as possible
** --force Force the rebuild to complete even if errors are seen
** --noverify Skip the verification of changes to the BLOB table
** --pagesize N Set the database pagesize to N. (512..65536 and power of 2)
** --randomize Scan artifacts in a random order
** --vacuum Run VACUUM on the database after rebuilding
** --deanalyze Remove ANALYZE tables from the database
** --wal Set Write-Ahead-Log journalling mode on the database
** --stats Show artifact statistics after rebuilding
**
** See also: deconstruct, reconstruct
*/
void rebuild_database(void){
int forceFlag;
int randomizeFlag;
int errCnt;
int omitVerify;
int doClustering;
const char *zPagesize;
int newPagesize = 0;
int activateWal;
int runVacuum;
int runDeanalyze;
int runCompress;
int showStats;
omitVerify = find_option("noverify",0,0)!=0;
forceFlag = find_option("force","f",0)!=0;
randomizeFlag = find_option("randomize", 0, 0)!=0;
doClustering = find_option("cluster", 0, 0)!=0;
runVacuum = find_option("vacuum",0,0)!=0;
runDeanalyze = find_option("deanalyze",0,0)!=0;
runCompress = find_option("compress",0,0)!=0;
zPagesize = find_option("pagesize",0,1);
showStats = find_option("stats",0,0)!=0;
if( zPagesize ){
newPagesize = atoi(zPagesize);
if( newPagesize<512 || newPagesize>65536
|| (newPagesize&(newPagesize-1))!=0
|
| ︙ | ︙ | |||
596 597 598 599 600 601 602 603 604 605 606 607 608 609 |
if( runCompress ) fossil_print("done\n");
db_close(0);
db_open_repository(g.zRepositoryName);
if( newPagesize ){
db_multi_exec("PRAGMA page_size=%d", newPagesize);
runVacuum = 1;
}
if( runVacuum ){
fossil_print("Vacuuming the database... "); fflush(stdout);
db_multi_exec("VACUUM");
fossil_print("done\n");
}
if( activateWal ){
db_multi_exec("PRAGMA journal_mode=WAL;");
| > > > > | 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 |
if( runCompress ) fossil_print("done\n");
db_close(0);
db_open_repository(g.zRepositoryName);
if( newPagesize ){
db_multi_exec("PRAGMA page_size=%d", newPagesize);
runVacuum = 1;
}
if( runDeanalyze ){
db_multi_exec("DROP TABLE IF EXISTS sqlite_stat1;"
"DROP TABLE IF EXISTS sqlite_stat3;");
}
if( runVacuum ){
fossil_print("Vacuuming the database... "); fflush(stdout);
db_multi_exec("VACUUM");
fossil_print("done\n");
}
if( activateWal ){
db_multi_exec("PRAGMA journal_mode=WAL;");
|
| ︙ | ︙ |