Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add comments to the top of keywordhash.h. (CVS 3651) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0aa9ed5bbfb756967a6f761c5fc2f274 |
User & Date: | drh 2007-02-21 16:44:33.000 |
Context
2007-02-21
| ||
16:52 | Fix for an UPDATE on a virtual table when the WHERE clause matches zero rows. Ticket #2244. (CVS 3652) (check-in: 43bf797842 user: danielk1977 tags: trunk) | |
16:44 | Add comments to the top of keywordhash.h. (CVS 3651) (check-in: 0aa9ed5bbf user: drh tags: trunk) | |
2007-02-20
| ||
15:21 | Enhance the documentation to clarify that SQLite is not reentrant through the authorization callback function. Ticket #2242. (CVS 3650) (check-in: b18a758a8f user: drh tags: trunk) | |
Changes
Changes to tool/mkkeywordhash.c.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /* ** Compile and run this standalone program in order to generate code that ** implements a function that will translate alphabetic identifiers into ** parser token codes. */ #include <stdio.h> #include <string.h> #include <stdlib.h> /* ** All the keywords of the SQL language are stored as in a hash ** table composed of instances of the following structure. */ typedef struct Keyword Keyword; struct Keyword { | > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /* ** Compile and run this standalone program in order to generate code that ** implements a function that will translate alphabetic identifiers into ** parser token codes. */ #include <stdio.h> #include <string.h> #include <stdlib.h> /* ** A header comment placed at the beginning of generated code. */ static const char zHdr[] = "/***** This file contains automatically generated code ******\n" "**\n" "** The code in this file has been automatically generated by\n" "**\n" "** $Header: /home/drh/sqlite/trans/cvs/sqlite/sqlite/tool/mkkeywordhash.c,v 1.25 2007/02/21 16:44:33 drh Exp $\n" "**\n" "** The code in this file implements a function that determines whether\n" "** or not a given identifier is really an SQL keyword. The same thing\n" "** might be implemented more directly using a hand-written hash table.\n" "** But by using this automatically generated code, the size of the code\n" "** is substantially reduced. This is important for embedded applications\n" "** on platforms with limited memory.\n" "*/\n" ; /* ** All the keywords of the SQL language are stored as in a hash ** table composed of instances of the following structure. */ typedef struct Keyword Keyword; struct Keyword { |
︙ | ︙ | |||
406 407 408 409 410 411 412 413 414 415 416 417 418 419 | for(i=0; i<NKEYWORD; i++){ h = aKeywordTable[i].hash % bestSize; aKeywordTable[i].iNext = aHash[h]; aHash[h] = i+1; } /* Begin generating code */ printf("/* Hash score: %d */\n", bestCount); printf("static int keywordCode(const char *z, int n){\n"); printf(" static const char zText[%d] =\n", nChar+1); for(i=j=0; i<NKEYWORD; i++){ Keyword *p = &aKeywordTable[i]; if( p->substrId ) continue; | > | 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 | for(i=0; i<NKEYWORD; i++){ h = aKeywordTable[i].hash % bestSize; aKeywordTable[i].iNext = aHash[h]; aHash[h] = i+1; } /* Begin generating code */ printf("%s", zHdr); printf("/* Hash score: %d */\n", bestCount); printf("static int keywordCode(const char *z, int n){\n"); printf(" static const char zText[%d] =\n", nChar+1); for(i=j=0; i<NKEYWORD; i++){ Keyword *p = &aKeywordTable[i]; if( p->substrId ) continue; |
︙ | ︙ |