Be more aggressive with the SQLITE_OMIT_VACUUM macro. Saves about 150
bytes of code space. (CVS 3432) FossilOrigin-Name: 7e618db4579d752cc6d775c664c93e141217948f
This commit is contained in:
parent
8b62817797
commit
154d4b2446
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
||||
C Implementation\sof\sthe\ssnippet()\sfunction\sfor\sFTS1.\s\sIncludes\sa\sfew\nsimple\stest\scases\sbut\smore\stesting\sis\sneeded.\s(CVS\s3431)
|
||||
D 2006-09-21T02:03:09
|
||||
C Be\smore\saggressive\swith\sthe\sSQLITE_OMIT_VACUUM\smacro.\s\sSaves\sabout\s150\nbytes\sof\scode\sspace.\s(CVS\s3432)
|
||||
D 2006-09-21T11:02:17
|
||||
F Makefile.in cabd42d34340f49260bc2a7668c38eba8d4cfd99
|
||||
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
|
||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
||||
@ -78,7 +78,7 @@ F src/os_win.c a66763099e093785bee7e8cff3baef01868b2e73
|
||||
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
|
||||
F src/pager.c 0f966f7fa225c377da2021fbbfdd50a48d877000
|
||||
F src/pager.h 0cff9de5e9019cb695a04d18df8caaaff933a272
|
||||
F src/parse.y 3279443a2b8173230dd27b9821373b681bb1f3c8
|
||||
F src/parse.y 8c79a1debbd92a4f5609511e9bf0222de78f5ecb
|
||||
F src/pragma.c dcb79b8170231f3aed99d4004b4d0a0fc14c4b4d
|
||||
F src/prepare.c bc003436a4897b8f30b940e023a70297e860f805
|
||||
F src/printf.c b179b6ed12f793e028dd169e2e2e2b2a37eedc63
|
||||
@ -111,8 +111,8 @@ F src/trigger.c 74ccec784683232f89f3b4db34a089d8cace2058
|
||||
F src/update.c 951f95ef044cf6d28557c48dc35cb0711a0b9129
|
||||
F src/utf.c 4459801e9b00cfd69993bfca58545d3775682d6e
|
||||
F src/util.c 91d4cb189476906639ae611927d939691d1365f6
|
||||
F src/vacuum.c fb65647c362589ed4ebb342c85665cadbcbf980c
|
||||
F src/vdbe.c a77869949ddd0afe01443611edb949e24e67c91c
|
||||
F src/vacuum.c f958275b353bcc54776601582ea35ed427125a9d
|
||||
F src/vdbe.c 39f775380fc3b8e30f0743b098c15e03d51bb7eb
|
||||
F src/vdbe.h 258b5d1c0aaa72192f09ff0568ce42b383f156fa
|
||||
F src/vdbeInt.h e3eaab262b67b84474625cfc38aec1125c32834b
|
||||
F src/vdbeapi.c f1858a5edc3a5e32d038514dd9e7e9091400a782
|
||||
@ -399,7 +399,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
||||
P bb2e1871cb10b470f96c793bb137c043ef30e1da
|
||||
R 2733a08fd53c5688fa09fb4ef51647ba
|
||||
P c7ee60d00976efab25a830e7416538010c734129
|
||||
R 4a4f7b1d165466da2e1372b56afee139
|
||||
U drh
|
||||
Z 50f7084cc6542485b2db3e3ffa3bb7c3
|
||||
Z 2d27498809c9282eb1d2a169b6b639c4
|
||||
|
@ -1 +1 @@
|
||||
c7ee60d00976efab25a830e7416538010c734129
|
||||
7e618db4579d752cc6d775c664c93e141217948f
|
32
src/parse.y
32
src/parse.y
@ -14,7 +14,7 @@
|
||||
** the parser. Lemon will also generate a header file containing
|
||||
** numeric codes for all of the tokens.
|
||||
**
|
||||
** @(#) $Id: parse.y,v 1.209 2006/09/11 23:45:49 drh Exp $
|
||||
** @(#) $Id: parse.y,v 1.210 2006/09/21 11:02:17 drh Exp $
|
||||
*/
|
||||
|
||||
// All token codes are small integers with #defines that begin with "TK_"
|
||||
@ -104,7 +104,7 @@ explain ::= . { sqlite3BeginParse(pParse, 0); }
|
||||
%ifndef SQLITE_OMIT_EXPLAIN
|
||||
explain ::= EXPLAIN. { sqlite3BeginParse(pParse, 1); }
|
||||
explain ::= EXPLAIN QUERY PLAN. { sqlite3BeginParse(pParse, 2); }
|
||||
%endif
|
||||
%endif SQLITE_OMIT_EXPLAIN
|
||||
|
||||
///////////////////// Begin and end transactions. ////////////////////////////
|
||||
//
|
||||
@ -134,7 +134,7 @@ ifnotexists(A) ::= IF NOT EXISTS. {A = 1;}
|
||||
%type temp {int}
|
||||
%ifndef SQLITE_OMIT_TEMPDB
|
||||
temp(A) ::= TEMP. {A = 1;}
|
||||
%endif
|
||||
%endif SQLITE_OMIT_TEMPDB
|
||||
temp(A) ::= . {A = 0;}
|
||||
create_table_args ::= LP columnlist conslist_opt(X) RP(Y). {
|
||||
sqlite3EndTable(pParse,&X,&Y,0);
|
||||
@ -179,7 +179,7 @@ id(A) ::= ID(X). {A = X;}
|
||||
TEMP TRIGGER VACUUM VIEW VIRTUAL
|
||||
%ifdef SQLITE_OMIT_COMPOUND_SELECT
|
||||
EXCEPT INTERSECT UNION
|
||||
%endif
|
||||
%endif SQLITE_OMIT_COMPOUND_SELECT
|
||||
REINDEX RENAME CTIME_KW IF
|
||||
.
|
||||
%wildcard ANY.
|
||||
@ -361,7 +361,7 @@ cmd ::= CREATE(X) temp(T) VIEW ifnotexists(E) nm(Y) dbnm(Z) AS select(S). {
|
||||
cmd ::= DROP VIEW ifexists(E) fullname(X). {
|
||||
sqlite3DropTable(pParse, X, 1, E);
|
||||
}
|
||||
%endif // SQLITE_OMIT_VIEW
|
||||
%endif SQLITE_OMIT_VIEW
|
||||
|
||||
//////////////////////// The SELECT statement /////////////////////////////////
|
||||
//
|
||||
@ -388,7 +388,7 @@ select(A) ::= select(X) multiselect_op(Y) oneselect(Z). {
|
||||
multiselect_op(A) ::= UNION(OP). {A = @OP;}
|
||||
multiselect_op(A) ::= UNION ALL. {A = TK_ALL;}
|
||||
multiselect_op(A) ::= EXCEPT|INTERSECT(OP). {A = @OP;}
|
||||
%endif // SQLITE_OMIT_COMPOUND_SELECT
|
||||
%endif SQLITE_OMIT_COMPOUND_SELECT
|
||||
oneselect(A) ::= SELECT distinct(D) selcollist(W) from(X) where_opt(Y)
|
||||
groupby_opt(P) having_opt(Q) orderby_opt(Z) limit_opt(L). {
|
||||
A = sqlite3SelectNew(W,X,Y,P,Q,Z,D,L.pLimit,L.pOffset);
|
||||
@ -492,7 +492,7 @@ seltablist(A) ::= stl_prefix(X) nm(Y) dbnm(D) as(Z) on_opt(N) using_opt(U). {
|
||||
seltablist_paren(A) ::= seltablist(F). {
|
||||
A = sqlite3SelectNew(0,F,0,0,0,0,0,0,0);
|
||||
}
|
||||
%endif // SQLITE_OMIT_SUBQUERY
|
||||
%endif SQLITE_OMIT_SUBQUERY
|
||||
|
||||
%type dbnm {Token}
|
||||
dbnm(A) ::= . {A.z=0; A.n=0;}
|
||||
@ -662,7 +662,7 @@ expr(A) ::= CAST(X) LP expr(E) AS typetoken(T) RP(Y). {
|
||||
A = sqlite3Expr(TK_CAST, E, 0, &T);
|
||||
sqlite3ExprSpan(A,&X,&Y);
|
||||
}
|
||||
%endif // SQLITE_OMIT_CAST
|
||||
%endif SQLITE_OMIT_CAST
|
||||
expr(A) ::= ID(X) LP distinct(D) exprlist(Y) RP(E). {
|
||||
A = sqlite3ExprFunction(Y, &X);
|
||||
sqlite3ExprSpan(A,&X,&E);
|
||||
@ -810,7 +810,7 @@ expr(A) ::= expr(W) between_op(N) expr(X) AND expr(Y). [BETWEEN] {
|
||||
sqlite3SelectDelete(Y);
|
||||
}
|
||||
}
|
||||
%endif // SQLITE_OMIT_SUBQUERY
|
||||
%endif SQLITE_OMIT_SUBQUERY
|
||||
|
||||
/* CASE expressions */
|
||||
expr(A) ::= CASE(C) case_operand(X) case_exprlist(Y) case_else(Z) END(E). {
|
||||
@ -899,8 +899,10 @@ cmd ::= DROP INDEX ifexists(E) fullname(X). {sqlite3DropIndex(pParse, X, E);}
|
||||
|
||||
///////////////////////////// The VACUUM command /////////////////////////////
|
||||
//
|
||||
%ifndef SQLITE_OMIT_VACUUM
|
||||
cmd ::= VACUUM. {sqlite3Vacuum(pParse);}
|
||||
cmd ::= VACUUM nm. {sqlite3Vacuum(pParse);}
|
||||
%endif SQLITE_OMIT_VACUUM
|
||||
|
||||
///////////////////////////// The PRAGMA command /////////////////////////////
|
||||
//
|
||||
@ -913,7 +915,7 @@ cmd ::= PRAGMA nm(X) dbnm(Z) EQ minus_num(Y). {
|
||||
}
|
||||
cmd ::= PRAGMA nm(X) dbnm(Z) LP nm(Y) RP. {sqlite3Pragma(pParse,&X,&Z,&Y,0);}
|
||||
cmd ::= PRAGMA nm(X) dbnm(Z). {sqlite3Pragma(pParse,&X,&Z,0,0);}
|
||||
%endif // SQLITE_OMIT_PRAGMA
|
||||
%endif SQLITE_OMIT_PRAGMA
|
||||
plus_num(A) ::= plus_opt number(X). {A = X;}
|
||||
minus_num(A) ::= MINUS number(X). {A = X;}
|
||||
number(A) ::= INTEGER|FLOAT(X). {A = X;}
|
||||
@ -1009,7 +1011,7 @@ expr(A) ::= RAISE(X) LP raisetype(T) COMMA nm(Z) RP(Y). {
|
||||
sqlite3ExprSpan(A, &X, &Y);
|
||||
}
|
||||
}
|
||||
%endif // !SQLITE_OMIT_TRIGGER
|
||||
%endif !SQLITE_OMIT_TRIGGER
|
||||
|
||||
%type raisetype {int}
|
||||
raisetype(A) ::= ROLLBACK. {A = OE_Rollback;}
|
||||
@ -1022,7 +1024,7 @@ raisetype(A) ::= FAIL. {A = OE_Fail;}
|
||||
cmd ::= DROP TRIGGER ifexists(NOERR) fullname(X). {
|
||||
sqlite3DropTrigger(pParse,X,NOERR);
|
||||
}
|
||||
%endif // !SQLITE_OMIT_TRIGGER
|
||||
%endif !SQLITE_OMIT_TRIGGER
|
||||
|
||||
//////////////////////// ATTACH DATABASE file AS name /////////////////////////
|
||||
cmd ::= ATTACH database_kw_opt expr(F) AS expr(D) key_opt(K). {
|
||||
@ -1045,7 +1047,7 @@ cmd ::= DETACH database_kw_opt expr(D). {
|
||||
%ifndef SQLITE_OMIT_REINDEX
|
||||
cmd ::= REINDEX. {sqlite3Reindex(pParse, 0, 0);}
|
||||
cmd ::= REINDEX nm(X) dbnm(Y). {sqlite3Reindex(pParse, &X, &Y);}
|
||||
%endif
|
||||
%endif SQLITE_OMIT_REINDEX
|
||||
|
||||
/////////////////////////////////// ANALYZE ///////////////////////////////////
|
||||
%ifndef SQLITE_OMIT_ANALYZE
|
||||
@ -1066,7 +1068,7 @@ add_column_fullname ::= fullname(X). {
|
||||
}
|
||||
kwcolumn_opt ::= .
|
||||
kwcolumn_opt ::= COLUMNKW.
|
||||
%endif
|
||||
%endif SQLITE_OMIT_ALTERTABLE
|
||||
|
||||
//////////////////////// CREATE VIRTUAL TABLE ... /////////////////////////////
|
||||
%ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||
@ -1084,4 +1086,4 @@ vtabargtoken ::= lp anylist RP(X). {sqlite3VtabArgExtend(pParse,&X);}
|
||||
lp ::= LP(X). {sqlite3VtabArgExtend(pParse,&X);}
|
||||
anylist ::= .
|
||||
anylist ::= anylist ANY(X). {sqlite3VtabArgExtend(pParse,&X);}
|
||||
%endif
|
||||
%endif SQLITE_OMIT_VIRTUALTABLE
|
||||
|
@ -14,7 +14,7 @@
|
||||
** Most of the code in this file may be omitted by defining the
|
||||
** SQLITE_OMIT_VACUUM macro.
|
||||
**
|
||||
** $Id: vacuum.c,v 1.62 2006/09/13 19:21:28 drh Exp $
|
||||
** $Id: vacuum.c,v 1.63 2006/09/21 11:02:18 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include "vdbeInt.h"
|
||||
@ -69,8 +69,6 @@ static int execExecSql(sqlite3 *db, const char *zSql){
|
||||
return sqlite3_finalize(pStmt);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
** The non-standard VACUUM command is used to clean up the database,
|
||||
** collapse free space, etc. It is modelled after the VACUUM command
|
||||
@ -94,7 +92,6 @@ void sqlite3Vacuum(Parse *pParse){
|
||||
*/
|
||||
int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db){
|
||||
int rc = SQLITE_OK; /* Return code from service routines */
|
||||
#ifndef SQLITE_OMIT_VACUUM
|
||||
const char *zFilename; /* full pathname of the database file */
|
||||
int nFilename; /* number of characters in zFilename[] */
|
||||
char *zTemp = 0; /* a temporary file in same directory as zFilename */
|
||||
@ -316,7 +313,7 @@ end_of_vacuum:
|
||||
}
|
||||
sqliteFree( zSql );
|
||||
sqlite3ResetInternalSchema(db, 0);
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
#endif /* SQLITE_OMIT_VACUUM */
|
||||
|
@ -43,7 +43,7 @@
|
||||
** in this file for details. If in doubt, do not deviate from existing
|
||||
** commenting and indentation practices when changing or adding code.
|
||||
**
|
||||
** $Id: vdbe.c,v 1.575 2006/09/02 20:57:52 drh Exp $
|
||||
** $Id: vdbe.c,v 1.576 2006/09/21 11:02:18 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include "os.h"
|
||||
@ -4499,6 +4499,7 @@ case OP_AggFinal: { /* no-push */
|
||||
}
|
||||
|
||||
|
||||
#ifndef SQLITE_OMIT_VACUUM
|
||||
/* Opcode: Vacuum * * *
|
||||
**
|
||||
** Vacuum the entire database. This opcode will cause other virtual
|
||||
@ -4511,6 +4512,7 @@ case OP_Vacuum: { /* no-push */
|
||||
if( sqlite3SafetyOn(db) ) goto abort_due_to_misuse;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Opcode: Expire P1 * *
|
||||
**
|
||||
|
Loading…
x
Reference in New Issue
Block a user