wasCSharpSQLite – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System.Diagnostics;
2 using System;
3  
4 namespace Community.CsharpSqlite
5 {
6 public partial class Sqlite3
7 {
8 /***** This file contains automatically generated code ******
9 **
10 ** The code in this file has been automatically generated by
11 **
12 ** sqlite/tool/mkkeywordhash.c
13 **
14 ** The code in this file implements a function that determines whether
15 ** or not a given identifier is really an SQL keyword. The same thing
16 ** might be implemented more directly using a hand-written hash table.
17 ** But by using this automatically generated code, the size of the code
18 ** is substantially reduced. This is important for embedded applications
19 ** on platforms with limited memory.
20 *************************************************************************
21 ** Included in SQLite3 port to C#-SQLite; 2008 Noah B Hart
22 ** C#-SQLite is an independent reimplementation of the SQLite software library
23 **
24 ** SQLITE_SOURCE_ID: 2010-08-23 18:52:01 42537b60566f288167f1b5864a5435986838e3a3
25 **
26 *************************************************************************
27 */
28 /* Hash score: 175 */
29 /* zText[] encodes 811 bytes of keywords in 541 bytes */
30 /* REINDEXEDESCAPEACHECKEYBEFOREIGNOREGEXPLAINSTEADDATABASELECT */
31 /* ABLEFTHENDEFERRABLELSEXCEPTRANSACTIONATURALTERAISEXCLUSIVE */
32 /* XISTSAVEPOINTERSECTRIGGEREFERENCESCONSTRAINTOFFSETEMPORARY */
33 /* UNIQUERYATTACHAVINGROUPDATEBEGINNERELEASEBETWEENOTNULLIKE */
34 /* CASCADELETECASECOLLATECREATECURRENT_DATEDETACHIMMEDIATEJOIN */
35 /* SERTMATCHPLANALYZEPRAGMABORTVALUESVIRTUALIMITWHENWHERENAME */
36 /* AFTEREPLACEANDEFAULTAUTOINCREMENTCASTCOLUMNCOMMITCONFLICTCROSS */
37 /* CURRENT_TIMESTAMPRIMARYDEFERREDISTINCTDROPFAILFROMFULLGLOBYIF */
38 /* ISNULLORDERESTRICTOUTERIGHTROLLBACKROWUNIONUSINGVACUUMVIEW */
39 /* INITIALLY */
40 static string zText = new string( new char[540] {
41 'R','E','I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H',
42 'E','C','K','E','Y','B','E','F','O','R','E','I','G','N','O','R','E','G',
43 'E','X','P','L','A','I','N','S','T','E','A','D','D','A','T','A','B','A',
44 'S','E','L','E','C','T','A','B','L','E','F','T','H','E','N','D','E','F',
45 'E','R','R','A','B','L','E','L','S','E','X','C','E','P','T','R','A','N',
46 'S','A','C','T','I','O','N','A','T','U','R','A','L','T','E','R','A','I',
47 'S','E','X','C','L','U','S','I','V','E','X','I','S','T','S','A','V','E',
48 'P','O','I','N','T','E','R','S','E','C','T','R','I','G','G',
49 #if !SQLITE_OMIT_TRIGGER
50 'E',
51 #else
52 '\0',
53 #endif
54 'R',
55 #if !SQLITE_OMIT_FOREIGN_KEY
56 'E',
57 #else
58 '\0',
59 #endif
60 'F','E','R','E','N','C','E','S','C','O','N','S','T','R','A','I','N','T',
61 'O','F','F','S','E','T','E','M','P','O','R','A','R','Y','U','N','I','Q',
62 'U','E','R','Y','A','T','T','A','C','H','A','V','I','N','G','R','O','U',
63 'P','D','A','T','E','B','E','G','I','N','N','E','R','E','L','E','A','S',
64 'E','B','E','T','W','E','E','N','O','T','N','U','L','L','I','K','E','C',
65 'A','S','C','A','D','E','L','E','T','E','C','A','S','E','C','O','L','L',
66 'A','T','E','C','R','E','A','T','E','C','U','R','R','E','N','T','_','D',
67 'A','T','E','D','E','T','A','C','H','I','M','M','E','D','I','A','T','E',
68 'J','O','I','N','S','E','R','T','M','A','T','C','H','P','L','A','N','A',
69 'L','Y','Z','E','P','R','A','G','M','A','B','O','R','T','V','A','L','U',
70 'E','S','V','I','R','T','U','A','L','I','M','I','T','W','H','E','N','W',
71 'H','E','R','E','N','A','M','E','A','F','T','E','R','E','P','L','A','C',
72 'E','A','N','D','E','F','A','U','L','T','A','U','T','O','I','N','C','R',
73 'E','M','E','N','T','C','A','S','T','C','O','L','U','M','N','C','O','M',
74 'M','I','T','C','O','N','F','L','I','C','T','C','R','O','S','S','C','U',
75 'R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','R','I','M',
76 'A','R','Y','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T',
77 'D','R','O','P','F','A','I','L','F','R','O','M','F','U','L','L','G','L',
78 'O','B','Y','I','F','I','S','N','U','L','L','O','R','D','E','R','E','S',
79 'T','R','I','C','T','O','U','T','E','R','I','G','H','T','R','O','L','L',
80 'B','A','C','K','R','O','W','U','N','I','O','N','U','S','I','N','G','V',
81 'A','C','U','U','M','V','I','E','W','I','N','I','T','I','A','L','L','Y',
82 } );
83  
84 static byte[] aHash = { //aHash[127]
85 72, 101, 114, 70, 0, 45, 0, 0, 78, 0, 73, 0, 0,
86 42, 12, 74, 15, 0, 113, 81, 50, 108, 0, 19, 0, 0,
87 118, 0, 116, 111, 0, 22, 89, 0, 9, 0, 0, 66, 67,
88 0, 65, 6, 0, 48, 86, 98, 0, 115, 97, 0, 0, 44,
89 0, 99, 24, 0, 17, 0, 119, 49, 23, 0, 5, 106, 25,
90 92, 0, 0, 121, 102, 56, 120, 53, 28, 51, 0, 87, 0,
91 96, 26, 0, 95, 0, 0, 0, 91, 88, 93, 84, 105, 14,
92 39, 104, 0, 77, 0, 18, 85, 107, 32, 0, 117, 76, 109,
93 58, 46, 80, 0, 0, 90, 40, 0, 112, 0, 36, 0, 0,
94 29, 0, 82, 59, 60, 0, 20, 57, 0, 52,
95 };
96 static byte[] aNext = { //aNext[121]
97 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
98 0, 2, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
99 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100 0, 0, 0, 0, 33, 0, 21, 0, 0, 0, 43, 3, 47,
101 0, 0, 0, 0, 30, 0, 54, 0, 38, 0, 0, 0, 1,
102 62, 0, 0, 63, 0, 41, 0, 0, 0, 0, 0, 0, 0,
103 61, 0, 0, 0, 0, 31, 55, 16, 34, 10, 0, 0, 0,
104 0, 0, 0, 0, 11, 68, 75, 0, 8, 0, 100, 94, 0,
105 103, 0, 83, 0, 71, 0, 0, 110, 27, 37, 69, 79, 0,
106 35, 64, 0, 0,
107 };
108 static byte[] aLen = { //aLen[121]
109 7, 7, 5, 4, 6, 4, 5, 3, 6, 7, 3, 6, 6,
110 7, 7, 3, 8, 2, 6, 5, 4, 4, 3, 10, 4, 6,
111 11, 6, 2, 7, 5, 5, 9, 6, 9, 9, 7, 10, 10,
112 4, 6, 2, 3, 9, 4, 2, 6, 5, 6, 6, 5, 6,
113 5, 5, 7, 7, 7, 3, 2, 4, 4, 7, 3, 6, 4,
114 7, 6, 12, 6, 9, 4, 6, 5, 4, 7, 6, 5, 6,
115 7, 5, 4, 5, 6, 5, 7, 3, 7, 13, 2, 2, 4,
116 6, 6, 8, 5, 17, 12, 7, 8, 8, 2, 4, 4, 4,
117 4, 4, 2, 2, 6, 5, 8, 5, 5, 8, 3, 5, 5,
118 6, 4, 9, 3,
119 };
120 static int[] aOffset = { //aOffset[121]
121 0, 2, 2, 8, 9, 14, 16, 20, 23, 25, 25, 29, 33,
122 36, 41, 46, 48, 53, 54, 59, 62, 65, 67, 69, 78, 81,
123 86, 91, 95, 96, 101, 105, 109, 117, 122, 128, 136, 142, 152,
124 159, 162, 162, 165, 167, 167, 171, 176, 179, 184, 189, 194, 197,
125 203, 206, 210, 217, 223, 223, 223, 226, 229, 233, 234, 238, 244,
126 248, 255, 261, 273, 279, 288, 290, 296, 301, 303, 310, 315, 320,
127 326, 332, 337, 341, 344, 350, 354, 361, 363, 370, 372, 374, 383,
128 387, 393, 399, 407, 412, 412, 428, 435, 442, 443, 450, 454, 458,
129 462, 466, 469, 471, 473, 479, 483, 491, 495, 500, 508, 511, 516,
130 521, 527, 531, 536,
131 };
132 static byte[] aCode = { //aCode[121
133 TK_REINDEX, TK_INDEXED, TK_INDEX, TK_DESC, TK_ESCAPE,
134 TK_EACH, TK_CHECK, TK_KEY, TK_BEFORE, TK_FOREIGN,
135 TK_FOR, TK_IGNORE, TK_LIKE_KW, TK_EXPLAIN, TK_INSTEAD,
136 TK_ADD, TK_DATABASE, TK_AS, TK_SELECT, TK_TABLE,
137 TK_JOIN_KW, TK_THEN, TK_END, TK_DEFERRABLE, TK_ELSE,
138 TK_EXCEPT, TK_TRANSACTION,TK_ACTION, TK_ON, TK_JOIN_KW,
139 TK_ALTER, TK_RAISE, TK_EXCLUSIVE, TK_EXISTS, TK_SAVEPOINT,
140 TK_INTERSECT, TK_TRIGGER, TK_REFERENCES, TK_CONSTRAINT, TK_INTO,
141 TK_OFFSET, TK_OF, TK_SET, TK_TEMP, TK_TEMP,
142 TK_OR, TK_UNIQUE, TK_QUERY, TK_ATTACH, TK_HAVING,
143 TK_GROUP, TK_UPDATE, TK_BEGIN, TK_JOIN_KW, TK_RELEASE,
144 TK_BETWEEN, TK_NOTNULL, TK_NOT, TK_NO, TK_NULL,
145 TK_LIKE_KW, TK_CASCADE, TK_ASC, TK_DELETE, TK_CASE,
146 TK_COLLATE, TK_CREATE, TK_CTIME_KW, TK_DETACH, TK_IMMEDIATE,
147 TK_JOIN, TK_INSERT, TK_MATCH, TK_PLAN, TK_ANALYZE,
148 TK_PRAGMA, TK_ABORT, TK_VALUES, TK_VIRTUAL, TK_LIMIT,
149 TK_WHEN, TK_WHERE, TK_RENAME, TK_AFTER, TK_REPLACE,
150 TK_AND, TK_DEFAULT, TK_AUTOINCR, TK_TO, TK_IN,
151 TK_CAST, TK_COLUMNKW, TK_COMMIT, TK_CONFLICT, TK_JOIN_KW,
152 TK_CTIME_KW, TK_CTIME_KW, TK_PRIMARY, TK_DEFERRED, TK_DISTINCT,
153 TK_IS, TK_DROP, TK_FAIL, TK_FROM, TK_JOIN_KW,
154 TK_LIKE_KW, TK_BY, TK_IF, TK_ISNULL, TK_ORDER,
155 TK_RESTRICT, TK_JOIN_KW, TK_JOIN_KW, TK_ROLLBACK, TK_ROW,
156 TK_UNION, TK_USING, TK_VACUUM, TK_VIEW, TK_INITIALLY,
157 TK_ALL,
158 };
159 static int keywordCode( string z, int iOffset, int n )
160 {
161 int h, i;
162 if ( n < 2 )
163 return TK_ID;
164 h = ( ( sqlite3UpperToLower[z[iOffset + 0]] ) * 4 ^//(charMap(z[iOffset+0]) * 4) ^
165 ( sqlite3UpperToLower[z[iOffset + n - 1]] * 3 ) ^ //(charMap(z[iOffset+n - 1]) * 3) ^
166 n ) % 127;
167 for ( i = ( aHash[h] ) - 1; i >= 0; i = ( aNext[i] ) - 1 )
168 {
169 if ( aLen[i] == n && String.Compare( zText, aOffset[i], z, iOffset, n, StringComparison.OrdinalIgnoreCase ) == 0 )
170 {
171 testcase( i == 0 ); /* REINDEX */
172 testcase( i == 1 ); /* INDEXED */
173 testcase( i == 2 ); /* INDEX */
174 testcase( i == 3 ); /* DESC */
175 testcase( i == 4 ); /* ESCAPE */
176 testcase( i == 5 ); /* EACH */
177 testcase( i == 6 ); /* CHECK */
178 testcase( i == 7 ); /* KEY */
179 testcase( i == 8 ); /* BEFORE */
180 testcase( i == 9 ); /* FOREIGN */
181 testcase( i == 10 ); /* FOR */
182 testcase( i == 11 ); /* IGNORE */
183 testcase( i == 12 ); /* REGEXP */
184 testcase( i == 13 ); /* EXPLAIN */
185 testcase( i == 14 ); /* INSTEAD */
186 testcase( i == 15 ); /* ADD */
187 testcase( i == 16 ); /* DATABASE */
188 testcase( i == 17 ); /* AS */
189 testcase( i == 18 ); /* SELECT */
190 testcase( i == 19 ); /* TABLE */
191 testcase( i == 20 ); /* LEFT */
192 testcase( i == 21 ); /* THEN */
193 testcase( i == 22 ); /* END */
194 testcase( i == 23 ); /* DEFERRABLE */
195 testcase( i == 24 ); /* ELSE */
196 testcase( i == 25 ); /* EXCEPT */
197 testcase( i == 26 ); /* TRANSACTION */
198 testcase( i == 27 ); /* ACTION */
199 testcase( i == 28 ); /* ON */
200 testcase( i == 29 ); /* NATURAL */
201 testcase( i == 30 ); /* ALTER */
202 testcase( i == 31 ); /* RAISE */
203 testcase( i == 32 ); /* EXCLUSIVE */
204 testcase( i == 33 ); /* EXISTS */
205 testcase( i == 34 ); /* SAVEPOINT */
206 testcase( i == 35 ); /* INTERSECT */
207 testcase( i == 36 ); /* TRIGGER */
208 testcase( i == 37 ); /* REFERENCES */
209 testcase( i == 38 ); /* CONSTRAINT */
210 testcase( i == 39 ); /* INTO */
211 testcase( i == 40 ); /* OFFSET */
212 testcase( i == 41 ); /* OF */
213 testcase( i == 42 ); /* SET */
214 testcase( i == 43 ); /* TEMPORARY */
215 testcase( i == 44 ); /* TEMP */
216 testcase( i == 45 ); /* OR */
217 testcase( i == 46 ); /* UNIQUE */
218 testcase( i == 47 ); /* QUERY */
219 testcase( i == 48 ); /* ATTACH */
220 testcase( i == 49 ); /* HAVING */
221 testcase( i == 50 ); /* GROUP */
222 testcase( i == 51 ); /* UPDATE */
223 testcase( i == 52 ); /* BEGIN */
224 testcase( i == 53 ); /* INNER */
225 testcase( i == 54 ); /* RELEASE */
226 testcase( i == 55 ); /* BETWEEN */
227 testcase( i == 56 ); /* NOTNULL */
228 testcase( i == 57 ); /* NOT */
229 testcase( i == 58 ); /* NO */
230 testcase( i == 59 ); /* NULL */
231 testcase( i == 60 ); /* LIKE */
232 testcase( i == 61 ); /* CASCADE */
233 testcase( i == 62 ); /* ASC */
234 testcase( i == 63 ); /* DELETE */
235 testcase( i == 64 ); /* CASE */
236 testcase( i == 65 ); /* COLLATE */
237 testcase( i == 66 ); /* CREATE */
238 testcase( i == 67 ); /* CURRENT_DATE */
239 testcase( i == 68 ); /* DETACH */
240 testcase( i == 69 ); /* IMMEDIATE */
241 testcase( i == 70 ); /* JOIN */
242 testcase( i == 71 ); /* INSERT */
243 testcase( i == 72 ); /* MATCH */
244 testcase( i == 73 ); /* PLAN */
245 testcase( i == 74 ); /* ANALYZE */
246 testcase( i == 75 ); /* PRAGMA */
247 testcase( i == 76 ); /* ABORT */
248 testcase( i == 77 ); /* VALUES */
249 testcase( i == 78 ); /* VIRTUAL */
250 testcase( i == 79 ); /* LIMIT */
251 testcase( i == 80 ); /* WHEN */
252 testcase( i == 81 ); /* WHERE */
253 testcase( i == 82 ); /* RENAME */
254 testcase( i == 83 ); /* AFTER */
255 testcase( i == 84 ); /* REPLACE */
256 testcase( i == 85 ); /* AND */
257 testcase( i == 86 ); /* DEFAULT */
258 testcase( i == 87 ); /* AUTOINCREMENT */
259 testcase( i == 88 ); /* TO */
260 testcase( i == 89 ); /* IN */
261 testcase( i == 90 ); /* CAST */
262 testcase( i == 91 ); /* COLUMN */
263 testcase( i == 92 ); /* COMMIT */
264 testcase( i == 93 ); /* CONFLICT */
265 testcase( i == 94 ); /* CROSS */
266 testcase( i == 95 ); /* CURRENT_TIMESTAMP */
267 testcase( i == 96 ); /* CURRENT_TIME */
268 testcase( i == 97 ); /* PRIMARY */
269 testcase( i == 98 ); /* DEFERRED */
270 testcase( i == 99 ); /* DISTINCT */
271 testcase( i == 100 ); /* IS */
272 testcase( i == 101 ); /* DROP */
273 testcase( i == 102 ); /* FAIL */
274 testcase( i == 103 ); /* FROM */
275 testcase( i == 104 ); /* FULL */
276 testcase( i == 105 ); /* GLOB */
277 testcase( i == 106 ); /* BY */
278 testcase( i == 107 ); /* IF */
279 testcase( i == 108 ); /* ISNULL */
280 testcase( i == 109 ); /* ORDER */
281 testcase( i == 110 ); /* RESTRICT */
282 testcase( i == 111 ); /* OUTER */
283 testcase( i == 112 ); /* RIGHT */
284 testcase( i == 113 ); /* ROLLBACK */
285 testcase( i == 114 ); /* ROW */
286 testcase( i == 115 ); /* UNION */
287 testcase( i == 116 ); /* USING */
288 testcase( i == 117 ); /* VACUUM */
289 testcase( i == 118 ); /* VIEW */
290 testcase( i == 119 ); /* INITIALLY */
291 testcase( i == 120 ); /* ALL */
292 return aCode[i];
293 }
294 }
295 return TK_ID;
296 }
297 static int sqlite3KeywordCode( string z, int n )
298 {
299 return keywordCode( z, 0, n );
300 }
301 public const int SQLITE_N_KEYWORD = 121;//#define SQLITE_N_KEYWORD 121
302 }
303 }