wasCSharpSQLite – Blame information for rev
?pathlinks?
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 | } |