Add a new sqlite3_test_control() verb that facilitates testing that all

keywords are shown in the documentation.  (Two keywords were found to
be missing while testing the change.)

FossilOrigin-Name: d3cdc4b12be7f1ed2249ad210482200868956d12
This commit is contained in:
drh 2010-01-02 03:21:35 +00:00
parent c79c761f84
commit 0e857739c4
5 changed files with 33 additions and 13 deletions

View File

@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
C Add\sevidence\smarks\sassociated\swith\sautoincrement.
D 2010-01-01T18:57:48
C Add\sa\snew\ssqlite3_test_control()\sverb\sthat\sfacilitates\stesting\sthat\sall\nkeywords\sare\sshown\sin\sthe\sdocumentation.\s\s(Two\skeywords\swere\sfound\sto\nbe\smissing\swhile\stesting\sthe\schange.)
D 2010-01-02T03:21:35
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -132,7 +132,7 @@ F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
F src/legacy.c 9304428e71b1d622b764913e1432e69156814755
F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581
F src/main.c e477f3e3b3cfdce075e23b12875c4e77e6e358ee
F src/main.c 0ccd64804fa7f17b6913b19c525625b0121f894f
F src/malloc.c 5fa175797f982b178eaf38afba9c588a866be729
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 552f7e11486272f27948d2de9c012884d1f52908
@ -167,7 +167,7 @@ F src/resolve.c 69a45df25039eb58e321653914ad670ffe49d486
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
F src/select.c 0109b993c360d649857523abb72919e1794f9b45
F src/shell.c b9fae60b0f2ce306c20fa99e83c75023bf35f15b
F src/sqlite.h.in 60cbf318765de59bb454e229bd2d5ec065dd686a
F src/sqlite.h.in d493cf5029de67fe7252324473d89140a007a6c4
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
F src/sqliteInt.h d6c48b1a5cd6485151e1d1b071dbe0a85ceb70fe
F src/sqliteLimit.h 3afab2291762b5d09ae20c18feb8e9fa935a60a6
@ -764,7 +764,7 @@ F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
F tool/lemon.c 3088e4dec7f93c6b0925cf5bac04c8b7c8688835
F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
F tool/mkkeywordhash.c 9216336085e7a7c226a35c0bd780239968f8304f
F tool/mkkeywordhash.c d2e6b4a5965e23afb80fbe74bb54648cd371f309
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c.tcl 1da28229695fdebdfe8a7d19902ef6c76d6c1c2d
@ -786,14 +786,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P e1ccdb93d79a6f7b16f1f59cc3ad78f8d02eae84
R e8f64ea35cd805e82f52b2a556e34139
P 0e918c54893c361fb005295847f89aadcbfae35d
R 4e2278a90d83aeb76194f552dd614ab2
U drh
Z 394e360eb5d1df957fe55c257efb31a6
Z 6cc1d51d83bc0a29c7be4eda186a8f3f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFLPkWvoxKgR168RlERAtsJAJwKfkre0Bw1zrZ2r7ADRBOPhGeUFwCeKg/n
1gzLrYYIpH++nnmQeRwJHWU=
=j3Nq
iD8DBQFLPrvBoxKgR168RlERAl39AJ4z8HMdS6dRMjYvZStCrX4tTzIf7QCeLL+Z
zmFXEMFv/PKMmwqfXsIA47c=
=8Nrv
-----END PGP SIGNATURE-----

View File

@ -1 +1 @@
0e918c54893c361fb005295847f89aadcbfae35d
d3cdc4b12be7f1ed2249ad210482200868956d12

View File

@ -2297,6 +2297,24 @@ int sqlite3_test_control(int op, ...){
break;
}
#ifdef SQLITE_N_KEYWORD
/* sqlite3_test_control(SQLITE_TESTCTRL_ISKEYWORD, const char *zWord)
**
** If zWord is a keyword recognized by the parser, then return the
** number of keywords. Or if zWord is not a keyword, return 0.
**
** This test feature is only available in the amalgamation since
** the SQLITE_N_KEYWORD macro is not defined in this file if SQLite
** is built using separate source files.
*/
case SQLITE_TESTCTRL_ISKEYWORD: {
const char *zWord = va_arg(ap, const char*);
int n = sqlite3Strlen30(zWord);
rc = sqlite3KeywordCode((u8*)zWord, n) ? SQLITE_N_KEYWORD : 0;
break;
}
#endif
}
va_end(ap);
#endif /* SQLITE_OMIT_BUILTIN_TEST */

View File

@ -4935,7 +4935,8 @@ int sqlite3_test_control(int op, ...);
#define SQLITE_TESTCTRL_ALWAYS 13
#define SQLITE_TESTCTRL_RESERVE 14
#define SQLITE_TESTCTRL_OPTIMIZATIONS 15
#define SQLITE_TESTCTRL_LAST 15
#define SQLITE_TESTCTRL_ISKEYWORD 16
#define SQLITE_TESTCTRL_LAST 16
/*
** CAPI3REF: SQLite Runtime Status

View File

@ -596,6 +596,7 @@ int main(int argc, char **argv){
printf("int sqlite3KeywordCode(const unsigned char *z, int n){\n");
printf(" return keywordCode((char*)z, n);\n");
printf("}\n");
printf("#define SQLITE_N_KEYWORD %d\n", nKeyword);
return 0;
}