~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/sqlite/keywordhash.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Hash score: 151 */
 
2
static int keywordCode(const char *z, int n){
 
3
  static const char zText[510] =
 
4
    "ABORTABLEFTEMPORARYADDATABASELECTHENDEFAULTRANSACTIONATURALTER"
 
5
    "AISEACHECKEYAFTEREFERENCESCAPELSEXCEPTRIGGEREINDEXCLUSIVEXISTS"
 
6
    "TATEMENTANDEFERRABLEXPLAINITIALLYATTACHAVINGLOBEFOREIGNORENAME"
 
7
    "AUTOINCREMENTBEGINNEREPLACEBETWEENOTNULLIKEBYCASCADEFERREDELETE"
 
8
    "CASECOLLATECOLUMNCOMMITCONFLICTCONSTRAINTERSECTCREATECROSSCURRENT_DATE"
 
9
    "CURRENT_TIMESTAMPRAGMATCHDESCDETACHDISTINCTDROPRIMARYFAILIMIT"
 
10
    "FROMFULLGROUPDATEIMMEDIATEINSERTINSTEADINTOFFSETISNULLJOINORDER"
 
11
    "ESTRICTOUTERIGHTROLLBACKROWHENUNIONUNIQUEUSINGVACUUMVALUESVIEW"
 
12
    "HERE";
 
13
  static const unsigned char aHash[127] = {
 
14
      89,  79, 101,  88,   0,   4,   0,   0, 108,   0,  75,   0,   0,
 
15
      92,  44,   0,  90,   0, 100, 103,  94,   0,   0,  10,   0,   0,
 
16
     107,   0, 104,  98,   0,  11,  47,   0,  41,   0,   0,  63,  69,
 
17
       0,  62,  19,   0,   0,  33,  81,   0, 102,  72,   0,   0,  30,
 
18
       0,  60,  34,   0,   8,   0, 109,  38,  12,   0,  76,  40,  25,
 
19
      64,   0,   0,  37,  80,  52,  36,  49,  20,  86,   0,  31,   0,
 
20
      73,  26,   0,  70,   0,   0,   0,   0,  46,  65,  22,  85,  35,
 
21
      67,  84,   0,   1,   0,   9,  51,  57,  18,   0, 106,  74,  96,
 
22
      53,   6,  83,   0,   0,  48,  91,   0,  99,   0,  68,   0,   0,
 
23
      15,   0, 110,  50,  55,   0,   2,  54,   0, 105,
 
24
  };
 
25
  static const unsigned char aNext[110] = {
 
26
       0,   0,   0,   0,   0,   3,   0,   0,   0,   0,   0,   0,   0,
 
27
       0,   0,   0,   0,   0,   0,   0,   0,  17,   0,   0,   0,   0,
 
28
       0,   0,   0,   5,  13,   0,   7,   0,   0,   0,   0,   0,   0,
 
29
       0,   0,   0,   0,   0,   0,  43,   0,   0,   0,   0,   0,   0,
 
30
       0,  16,   0,  23,  45,   0,   0,   0,   0,  28,  58,   0,   0,
 
31
       0,   0,   0,   0,   0,   0,  71,  42,   0,   0,  24,  59,  21,
 
32
       0,  78,   0,  66,   0,   0,  82,  29,   0,   0,   0,   0,   0,
 
33
       0,   0,  39,  93,  95,   0,   0,  97,  14,  27,  77,   0,  56,
 
34
      87,   0,  32,   0,  61,   0,
 
35
  };
 
36
  static const unsigned char aLen[110] = {
 
37
       5,   5,   4,   4,   9,   2,   3,   8,   2,   6,   4,   3,   7,
 
38
      11,   2,   7,   5,   5,   4,   5,   3,   5,  10,   6,   4,   6,
 
39
       7,   7,   5,   9,   6,   9,   3,  10,   7,   9,   3,   6,   6,
 
40
       4,   6,   3,   7,   6,   6,  13,   2,   2,   5,   5,   7,   7,
 
41
       3,   7,   4,   4,   2,   7,   3,   8,   6,   4,   7,   6,   6,
 
42
       8,  10,   9,   6,   5,  12,  12,  17,   6,   5,   4,   6,   8,
 
43
       2,   4,   7,   4,   5,   4,   4,   5,   6,   9,   6,   7,   4,
 
44
       2,   6,   3,   6,   4,   5,   8,   5,   5,   8,   3,   4,   5,
 
45
       6,   5,   6,   6,   4,   5,
 
46
  };
 
47
  static const unsigned short int aOffset[110] = {
 
48
       0,   4,   7,  10,  10,  14,  19,  21,  26,  27,  32,  34,  36,
 
49
      42,  51,  52,  57,  61,  65,  67,  71,  74,  78,  86,  91,  94,
 
50
      99, 105, 107, 110, 118, 123, 132, 134, 143, 148, 153, 157, 162,
 
51
     167, 170, 172, 172, 176, 180, 186, 188, 190, 199, 202, 206, 213,
 
52
     219, 219, 222, 225, 229, 231, 232, 236, 243, 249, 253, 260, 266,
 
53
     272, 280, 287, 296, 302, 307, 319, 319, 335, 339, 344, 348, 354,
 
54
     355, 362, 365, 372, 375, 380, 384, 388, 391, 397, 406, 412, 419,
 
55
     422, 422, 425, 428, 434, 438, 442, 450, 454, 459, 467, 469, 473,
 
56
     478, 484, 489, 495, 501, 504,
 
57
  };
 
58
  static const unsigned char aCode[110] = {
 
59
    TK_ABORT,      TK_TABLE,      TK_JOIN_KW,    TK_TEMP,       TK_TEMP,       
 
60
    TK_OR,         TK_ADD,        TK_DATABASE,   TK_AS,         TK_SELECT,     
 
61
    TK_THEN,       TK_END,        TK_DEFAULT,    TK_TRANSACTION,TK_ON,         
 
62
    TK_JOIN_KW,    TK_ALTER,      TK_RAISE,      TK_EACH,       TK_CHECK,      
 
63
    TK_KEY,        TK_AFTER,      TK_REFERENCES, TK_ESCAPE,     TK_ELSE,       
 
64
    TK_EXCEPT,     TK_TRIGGER,    TK_REINDEX,    TK_INDEX,      TK_EXCLUSIVE,  
 
65
    TK_EXISTS,     TK_STATEMENT,  TK_AND,        TK_DEFERRABLE, TK_EXPLAIN,    
 
66
    TK_INITIALLY,  TK_ALL,        TK_ATTACH,     TK_HAVING,     TK_GLOB,       
 
67
    TK_BEFORE,     TK_FOR,        TK_FOREIGN,    TK_IGNORE,     TK_RENAME,     
 
68
    TK_AUTOINCR,   TK_TO,         TK_IN,         TK_BEGIN,      TK_JOIN_KW,    
 
69
    TK_REPLACE,    TK_BETWEEN,    TK_NOT,        TK_NOTNULL,    TK_NULL,       
 
70
    TK_LIKE,       TK_BY,         TK_CASCADE,    TK_ASC,        TK_DEFERRED,   
 
71
    TK_DELETE,     TK_CASE,       TK_COLLATE,    TK_COLUMNKW,   TK_COMMIT,     
 
72
    TK_CONFLICT,   TK_CONSTRAINT, TK_INTERSECT,  TK_CREATE,     TK_JOIN_KW,    
 
73
    TK_CDATE,      TK_CTIME,      TK_CTIMESTAMP, TK_PRAGMA,     TK_MATCH,      
 
74
    TK_DESC,       TK_DETACH,     TK_DISTINCT,   TK_IS,         TK_DROP,       
 
75
    TK_PRIMARY,    TK_FAIL,       TK_LIMIT,      TK_FROM,       TK_JOIN_KW,    
 
76
    TK_GROUP,      TK_UPDATE,     TK_IMMEDIATE,  TK_INSERT,     TK_INSTEAD,    
 
77
    TK_INTO,       TK_OF,         TK_OFFSET,     TK_SET,        TK_ISNULL,     
 
78
    TK_JOIN,       TK_ORDER,      TK_RESTRICT,   TK_JOIN_KW,    TK_JOIN_KW,    
 
79
    TK_ROLLBACK,   TK_ROW,        TK_WHEN,       TK_UNION,      TK_UNIQUE,     
 
80
    TK_USING,      TK_VACUUM,     TK_VALUES,     TK_VIEW,       TK_WHERE,      
 
81
  };
 
82
  int h, i;
 
83
  if( n<2 ) return TK_ID;
 
84
  h = ((sqlite3UpperToLower[((unsigned char*)z)[0]]*4) ^
 
85
      (sqlite3UpperToLower[((unsigned char*)z)[n-1]]*3) ^
 
86
      n) % 127;
 
87
  for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){
 
88
    if( aLen[i]==n && sqlite3StrNICmp(&zText[aOffset[i]],z,n)==0 ){
 
89
      return aCode[i];
 
90
    }
 
91
  }
 
92
  return TK_ID;
 
93
}
 
94
int sqlite3KeywordCode(const char *z, int n){
 
95
  return keywordCode(z, n);
 
96
}