Disable row counting on queries run while doing a VACUUM.
FossilOrigin-Name: ad35ef116296e5d6aaeb9ef260bf35bee3bd6d20
This commit is contained in:
parent
9ef5e7708a
commit
6a754dc767
15
manifest
15
manifest
@ -1,5 +1,5 @@
|
||||
C Add\sthe\scapability\sto\sVACUUM\san\sattached\sdatabase\sby\sspecifying\sthe\sschema\nname\sas\san\sargument\sto\sthe\sVACUUM\scommand.\s\sSince\sversion\s2.0,\sVACUUM\shas\naccepted\san\sargument\swhich\swas\ssilently\signored.\s\sNow\sit\shas\smeaning.
|
||||
D 2016-08-19T14:20:56.900
|
||||
C Disable\srow\scounting\son\squeries\srun\swhile\sdoing\sa\sVACUUM.
|
||||
D 2016-08-19T15:12:38.157
|
||||
F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc d66d0395c38571aab3804f8db0fa20707ae4609a
|
||||
@ -449,7 +449,7 @@ F src/trigger.c 11e20b3b12c847b3b9055594c0f1631266bb53fc
|
||||
F src/update.c 8179e699dbd45b92934fd02d3d8e3732e8da8802
|
||||
F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
|
||||
F src/util.c 810ec3f22e2d1b62e66c30fe3621ebdedd23584d
|
||||
F src/vacuum.c 0fecf4ba5ae91a2f1d601345f976b028888803d4
|
||||
F src/vacuum.c 913970b9d86dd6c2b8063ef1af421880f1464ec3
|
||||
F src/vdbe.c 15376952b0c5dc0afbac6cd8791579dd19ff0a01
|
||||
F src/vdbe.h 67bc551f7faf04c33493892e4b378aada823ed10
|
||||
F src/vdbeInt.h c59381049af5c7751a83456c39b80d1a6fde1f9d
|
||||
@ -1511,10 +1511,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P cb9865e14db1c0076618f13400151112f84960cb
|
||||
R d22b71c0b6e2dcfd7355ff82dbeacb9a
|
||||
T *branch * vacuum-attached-db
|
||||
T *sym-vacuum-attached-db *
|
||||
T -sym-trunk *
|
||||
P 29d63059b4d2bb612523ac55ebfef040d054a64f
|
||||
R abd29f9f3d87c2af53d085425233b2a6
|
||||
U drh
|
||||
Z 9021190c8e1ac254dada8dc6dfa393f1
|
||||
Z 5800f169232e621dbe2100315fb2f1aa
|
||||
|
@ -1 +1 @@
|
||||
29d63059b4d2bb612523ac55ebfef040d054a64f
|
||||
ad35ef116296e5d6aaeb9ef260bf35bee3bd6d20
|
15
src/vacuum.c
15
src/vacuum.c
@ -22,10 +22,9 @@
|
||||
/*
|
||||
** Execute zSql on database db.
|
||||
**
|
||||
** If zSql begins with 'S' (if it is a SELECT statement) then
|
||||
** take each row of result and call execSql() again recursively.
|
||||
** It is guaranteed that each row will have only one column that
|
||||
** does not begin with 'S'.
|
||||
** If zSql returns rows, then each row will have exactly one
|
||||
** column. (This will only happen if zSql begins with "SELECT".)
|
||||
** Take each row of result and call execSql() again recursively.
|
||||
**
|
||||
** The execSqlF() routine does the same thing, except it accepts
|
||||
** a format string as its third argument
|
||||
@ -37,15 +36,17 @@ static int execSql(sqlite3 *db, char **pzErrMsg, const char *zSql){
|
||||
/* printf("SQL: [%s]\n", zSql); fflush(stdout); */
|
||||
rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
|
||||
if( rc!=SQLITE_OK ) return rc;
|
||||
while( SQLITE_ROW==(rc = sqlite3_step(pStmt)) && zSql[0]=='S' ){
|
||||
while( SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){
|
||||
const char *zSubSql = (const char*)sqlite3_column_text(pStmt,0);
|
||||
assert( sqlite3_strnicmp(zSql,"SELECT",6)==0 );
|
||||
if( zSubSql ){
|
||||
assert( zSubSql[0]!='S' );
|
||||
rc = execSql(db, pzErrMsg, zSubSql);
|
||||
if( rc!=SQLITE_OK ) break;
|
||||
}
|
||||
}
|
||||
if( rc==SQLITE_ROW || rc==SQLITE_DONE ) rc = SQLITE_OK;
|
||||
assert( rc!=SQLITE_ROW );
|
||||
if( rc==SQLITE_DONE ) rc = SQLITE_OK;
|
||||
if( rc ){
|
||||
sqlite3SetString(pzErrMsg, db, sqlite3_errmsg(db));
|
||||
}
|
||||
@ -140,7 +141,7 @@ int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db, int iDb){
|
||||
saved_mTrace = db->mTrace;
|
||||
db->flags |= (SQLITE_WriteSchema | SQLITE_IgnoreChecks
|
||||
| SQLITE_PreferBuiltin | SQLITE_Vacuum);
|
||||
db->flags &= ~(SQLITE_ForeignKeys | SQLITE_ReverseOrder);
|
||||
db->flags &= ~(SQLITE_ForeignKeys | SQLITE_ReverseOrder | SQLITE_CountRows);
|
||||
db->mTrace = 0;
|
||||
|
||||
zDbMain = db->aDb[iDb].zDbSName;
|
||||
|
Loading…
x
Reference in New Issue
Block a user