static int keywordCode()

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;
}