in sqlite/sqlite3_debug.c [161181:161352]
static int keywordCode(const char *z, int n, int *pType){
int i, j;
const char *zKW;
if( n>=2 ){
i = ((charMap(z[0])*4) ^ (charMap(z[n-1])*3) ^ n) % 127;
for(i=((int)aKWHash[i])-1; i>=0; i=((int)aKWNext[i])-1){
if( aKWLen[i]!=n ) continue;
zKW = &zKWText[aKWOffset[i]];
#ifdef SQLITE_ASCII
if( (z[0]&~0x20)!=zKW[0] ) continue;
if( (z[1]&~0x20)!=zKW[1] ) continue;
j = 2;
while( j<n && (z[j]&~0x20)==zKW[j] ){ j++; }
#endif
#ifdef SQLITE_EBCDIC
if( toupper(z[0])!=zKW[0] ) continue;
if( toupper(z[1])!=zKW[1] ) continue;
j = 2;
while( j<n && toupper(z[j])==zKW[j] ){ j++; }
#endif
if( j<n ) continue;
testcase( i==0 ); /* REINDEX */
testcase( i==1 ); /* INDEXED */
testcase( i==2 ); /* INDEX */
testcase( i==3 ); /* DESC */
testcase( i==4 ); /* ESCAPE */
testcase( i==5 ); /* EACH */
testcase( i==6 ); /* CHECK */
testcase( i==7 ); /* KEY */
testcase( i==8 ); /* BEFORE */
testcase( i==9 ); /* FOREIGN */
testcase( i==10 ); /* FOR */
testcase( i==11 ); /* IGNORE */
testcase( i==12 ); /* REGEXP */
testcase( i==13 ); /* EXPLAIN */
testcase( i==14 ); /* INSTEAD */
testcase( i==15 ); /* ADD */
testcase( i==16 ); /* DATABASE */
testcase( i==17 ); /* AS */
testcase( i==18 ); /* SELECT */
testcase( i==19 ); /* TABLE */
testcase( i==20 ); /* LEFT */
testcase( i==21 ); /* THEN */
testcase( i==22 ); /* END */
testcase( i==23 ); /* DEFERRABLE */
testcase( i==24 ); /* ELSE */
testcase( i==25 ); /* EXCLUDE */
testcase( i==26 ); /* DELETE */
testcase( i==27 ); /* TEMPORARY */
testcase( i==28 ); /* TEMP */
testcase( i==29 ); /* OR */
testcase( i==30 ); /* ISNULL */
testcase( i==31 ); /* NULLS */
testcase( i==32 ); /* SAVEPOINT */
testcase( i==33 ); /* INTERSECT */
testcase( i==34 ); /* TIES */
testcase( i==35 ); /* NOTNULL */
testcase( i==36 ); /* NOT */
testcase( i==37 ); /* NO */
testcase( i==38 ); /* NULL */
testcase( i==39 ); /* LIKE */
testcase( i==40 ); /* EXCEPT */
testcase( i==41 ); /* TRANSACTION */
testcase( i==42 ); /* ACTION */
testcase( i==43 ); /* ON */
testcase( i==44 ); /* NATURAL */
testcase( i==45 ); /* ALTER */
testcase( i==46 ); /* RAISE */
testcase( i==47 ); /* EXCLUSIVE */
testcase( i==48 ); /* EXISTS */
testcase( i==49 ); /* CONSTRAINT */
testcase( i==50 ); /* INTO */
testcase( i==51 ); /* OFFSET */
testcase( i==52 ); /* OF */
testcase( i==53 ); /* SET */
testcase( i==54 ); /* TRIGGER */
testcase( i==55 ); /* RANGE */
testcase( i==56 ); /* GENERATED */
testcase( i==57 ); /* DETACH */
testcase( i==58 ); /* HAVING */
testcase( i==59 ); /* GLOB */
testcase( i==60 ); /* BEGIN */
testcase( i==61 ); /* INNER */
testcase( i==62 ); /* REFERENCES */
testcase( i==63 ); /* UNIQUE */
testcase( i==64 ); /* QUERY */
testcase( i==65 ); /* WITHOUT */
testcase( i==66 ); /* WITH */
testcase( i==67 ); /* OUTER */
testcase( i==68 ); /* RELEASE */
testcase( i==69 ); /* ATTACH */
testcase( i==70 ); /* BETWEEN */
testcase( i==71 ); /* NOTHING */
testcase( i==72 ); /* GROUPS */
testcase( i==73 ); /* GROUP */
testcase( i==74 ); /* CASCADE */
testcase( i==75 ); /* ASC */
testcase( i==76 ); /* DEFAULT */
testcase( i==77 ); /* CASE */
testcase( i==78 ); /* COLLATE */
testcase( i==79 ); /* CREATE */
testcase( i==80 ); /* CURRENT_DATE */
testcase( i==81 ); /* IMMEDIATE */
testcase( i==82 ); /* JOIN */
testcase( i==83 ); /* INSERT */
testcase( i==84 ); /* MATCH */
testcase( i==85 ); /* PLAN */
testcase( i==86 ); /* ANALYZE */
testcase( i==87 ); /* PRAGMA */
testcase( i==88 ); /* ABORT */
testcase( i==89 ); /* UPDATE */
testcase( i==90 ); /* VALUES */
testcase( i==91 ); /* VIRTUAL */
testcase( i==92 ); /* ALWAYS */
testcase( i==93 ); /* WHEN */
testcase( i==94 ); /* WHERE */
testcase( i==95 ); /* RECURSIVE */
testcase( i==96 ); /* AFTER */
testcase( i==97 ); /* RENAME */
testcase( i==98 ); /* AND */
testcase( i==99 ); /* DEFERRED */
testcase( i==100 ); /* DISTINCT */
testcase( i==101 ); /* IS */
testcase( i==102 ); /* AUTOINCREMENT */
testcase( i==103 ); /* TO */
testcase( i==104 ); /* IN */
testcase( i==105 ); /* CAST */
testcase( i==106 ); /* COLUMN */
testcase( i==107 ); /* COMMIT */
testcase( i==108 ); /* CONFLICT */
testcase( i==109 ); /* CROSS */
testcase( i==110 ); /* CURRENT_TIMESTAMP */
testcase( i==111 ); /* CURRENT_TIME */
testcase( i==112 ); /* CURRENT */
testcase( i==113 ); /* PARTITION */
testcase( i==114 ); /* DROP */
testcase( i==115 ); /* PRECEDING */
testcase( i==116 ); /* FAIL */
testcase( i==117 ); /* LAST */
testcase( i==118 ); /* FILTER */
testcase( i==119 ); /* REPLACE */
testcase( i==120 ); /* FIRST */
testcase( i==121 ); /* FOLLOWING */
testcase( i==122 ); /* FROM */
testcase( i==123 ); /* FULL */
testcase( i==124 ); /* LIMIT */
testcase( i==125 ); /* IF */
testcase( i==126 ); /* ORDER */
testcase( i==127 ); /* RESTRICT */
testcase( i==128 ); /* OTHERS */
testcase( i==129 ); /* OVER */
testcase( i==130 ); /* RIGHT */
testcase( i==131 ); /* ROLLBACK */
testcase( i==132 ); /* ROWS */
testcase( i==133 ); /* ROW */
testcase( i==134 ); /* UNBOUNDED */
testcase( i==135 ); /* UNION */
testcase( i==136 ); /* USING */
testcase( i==137 ); /* VACUUM */
testcase( i==138 ); /* VIEW */
testcase( i==139 ); /* WINDOW */
testcase( i==140 ); /* DO */
testcase( i==141 ); /* BY */
testcase( i==142 ); /* INITIALLY */
testcase( i==143 ); /* ALL */
testcase( i==144 ); /* PRIMARY */
*pType = aKWCode[i];
break;
}
}
return n;
}