wasCSharpSQLite – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 namespace Community.CsharpSqlite
2 {
3 using sqlite3_value = Sqlite3.Mem;
4 using System;
5  
6 public partial class Sqlite3
7 {
8 /*
9 ** 2010 February 23
10 **
11 ** The author disclaims copyright to this source code. In place of
12 ** a legal notice, here is a blessing:
13 **
14 ** May you do good and not evil.
15 ** May you find forgiveness for yourself and forgive others.
16 ** May you share freely, never taking more than you give.
17 **
18 *************************************************************************
19 **
20 ** This file implements routines used to report what compile-time options
21 ** SQLite was built with.
22 *************************************************************************
23 ** Included in SQLite3 port to C#-SQLite; 2008 Noah B Hart
24 ** C#-SQLite is an independent reimplementation of the SQLite software library
25 **
26 ** SQLITE_SOURCE_ID: 2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7
27 **
28 *************************************************************************
29 */
30  
31 #if !SQLITE_OMIT_COMPILEOPTION_DIAGS
32  
33 //#include "sqliteInt.h"
34  
35 /*
36 ** An array of names of all compile-time options. This array should
37 ** be sorted A-Z.
38 **
39 ** This array looks large, but in a typical installation actually uses
40 ** only a handful of compile-time options, so most times this array is usually
41 ** rather short and uses little memory space.
42 */
43 static string[] azCompileOpt = {
44  
45 /* These macros are provided to "stringify" the value of the define
46 ** for those options in which the value is meaningful. */
47 //#define CTIMEOPT_VAL_(opt) #opt
48 //#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
49  
50 #if SQLITE_32BIT_ROWID
51 "32BIT_ROWID",
52 #endif
53 #if SQLITE_4_BYTE_ALIGNED_MALLOC
54 "4_BYTE_ALIGNED_MALLOC",
55 #endif
56 #if SQLITE_CASE_SENSITIVE_LIKE
57 "CASE_SENSITIVE_LIKE",
58 #endif
59 #if SQLITE_CHECK_PAGES
60 "CHECK_PAGES",
61 #endif
62 #if SQLITE_COVERAGE_TEST
63 "COVERAGE_TEST",
64 #endif
65 #if SQLITE_DEBUG
66 "DEBUG",
67 #endif
68 #if SQLITE_DEFAULT_LOCKING_MODE
69 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
70 #endif
71 #if SQLITE_DISABLE_DIRSYNC
72 "DISABLE_DIRSYNC",
73 #endif
74 #if SQLITE_DISABLE_LFS
75 "DISABLE_LFS",
76 #endif
77 #if SQLITE_ENABLE_ATOMIC_WRITE
78 "ENABLE_ATOMIC_WRITE",
79 #endif
80 #if SQLITE_ENABLE_CEROD
81 "ENABLE_CEROD",
82 #endif
83 #if SQLITE_ENABLE_COLUMN_METADATA
84 "ENABLE_COLUMN_METADATA",
85 #endif
86 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
87 "ENABLE_EXPENSIVE_ASSERT",
88 #endif
89 #if SQLITE_ENABLE_FTS1
90 "ENABLE_FTS1",
91 #endif
92 #if SQLITE_ENABLE_FTS2
93 "ENABLE_FTS2",
94 #endif
95 #if SQLITE_ENABLE_FTS3
96 "ENABLE_FTS3",
97 #endif
98 #if SQLITE_ENABLE_FTS3_PARENTHESIS
99 "ENABLE_FTS3_PARENTHESIS",
100 #endif
101 #if SQLITE_ENABLE_FTS4
102 "ENABLE_FTS4",
103 #endif
104 #if SQLITE_ENABLE_ICU
105 "ENABLE_ICU",
106 #endif
107 #if SQLITE_ENABLE_IOTRACE
108 "ENABLE_IOTRACE",
109 #endif
110 #if SQLITE_ENABLE_LOAD_EXTENSION
111 "ENABLE_LOAD_EXTENSION",
112 #endif
113 #if SQLITE_ENABLE_LOCKING_STYLE
114 "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
115 #endif
116 #if SQLITE_ENABLE_MEMORY_MANAGEMENT
117 "ENABLE_MEMORY_MANAGEMENT",
118 #endif
119 #if SQLITE_ENABLE_MEMSYS3
120 "ENABLE_MEMSYS3",
121 #endif
122 #if SQLITE_ENABLE_MEMSYS5
123 "ENABLE_MEMSYS5",
124 #endif
125 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
126 "ENABLE_OVERSIZE_CELL_CHECK",
127 #endif
128 #if SQLITE_ENABLE_RTREE
129 "ENABLE_RTREE",
130 #endif
131 #if SQLITE_ENABLE_STAT2
132 "ENABLE_STAT2",
133 #endif
134 #if SQLITE_ENABLE_UNLOCK_NOTIFY
135 "ENABLE_UNLOCK_NOTIFY",
136 #endif
137 #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
138 "ENABLE_UPDATE_DELETE_LIMIT",
139 #endif
140 #if SQLITE_HAS_CODEC
141 "HAS_CODEC",
142 #endif
143 ////#if SQLITE_HAVE_ISNAN
144 ////"HAVE_ISNAN",
145 ////#endif
146 #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
147 "HOMEGROWN_RECURSIVE_MUTEX",
148 #endif
149 #if SQLITE_IGNORE_AFP_LOCK_ERRORS
150 "IGNORE_AFP_LOCK_ERRORS",
151 #endif
152 #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
153 "IGNORE_FLOCK_LOCK_ERRORS",
154 #endif
155 #if SQLITE_INT64_TYPE
156 "INT64_TYPE",
157 #endif
158 #if SQLITE_LOCK_TRACE
159 "LOCK_TRACE",
160 #endif
161 #if SQLITE_MEMDEBUG
162 "MEMDEBUG",
163 #endif
164 #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
165 "MIXED_ENDIAN_64BIT_FLOAT",
166 #endif
167 #if SQLITE_NO_SYNC
168 "NO_SYNC",
169 #endif
170 #if SQLITE_OMIT_ALTERTABLE
171 "OMIT_ALTERTABLE",
172 #endif
173 #if SQLITE_OMIT_ANALYZE
174 "OMIT_ANALYZE",
175 #endif
176 #if SQLITE_OMIT_ATTACH
177 "OMIT_ATTACH",
178 #endif
179 #if SQLITE_OMIT_AUTHORIZATION
180 "OMIT_AUTHORIZATION",
181 #endif
182 #if SQLITE_OMIT_AUTOINCREMENT
183 "OMIT_AUTOINCREMENT",
184 #endif
185 #if SQLITE_OMIT_AUTOINIT
186 "OMIT_AUTOINIT",
187 #endif
188 #if SQLITE_OMIT_AUTOMATIC_INDEX
189 "OMIT_AUTOMATIC_INDEX",
190 #endif
191 #if SQLITE_OMIT_AUTORESET
192 "OMIT_AUTORESET",
193 #endif
194 #if SQLITE_OMIT_AUTOVACUUM
195 "OMIT_AUTOVACUUM",
196 #endif
197 #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
198 "OMIT_BETWEEN_OPTIMIZATION",
199 #endif
200 #if SQLITE_OMIT_BLOB_LITERAL
201 "OMIT_BLOB_LITERAL",
202 #endif
203 #if SQLITE_OMIT_BTREECOUNT
204 "OMIT_BTREECOUNT",
205 #endif
206 #if SQLITE_OMIT_BUILTIN_TEST
207 "OMIT_BUILTIN_TEST",
208 #endif
209 #if SQLITE_OMIT_CAST
210 "OMIT_CAST",
211 #endif
212 #if SQLITE_OMIT_CHECK
213 "OMIT_CHECK",
214 #endif
215 /* // redundant
216 ** #if SQLITE_OMIT_COMPILEOPTION_DIAGS
217 ** "OMIT_COMPILEOPTION_DIAGS",
218 ** #endif
219 */
220 #if SQLITE_OMIT_COMPLETE
221 "OMIT_COMPLETE",
222 #endif
223 #if SQLITE_OMIT_COMPOUND_SELECT
224 "OMIT_COMPOUND_SELECT",
225 #endif
226 #if SQLITE_OMIT_DATETIME_FUNCS
227 "OMIT_DATETIME_FUNCS",
228 #endif
229 #if SQLITE_OMIT_DECLTYPE
230 "OMIT_DECLTYPE",
231 #endif
232 #if SQLITE_OMIT_DEPRECATED
233 "OMIT_DEPRECATED",
234 #endif
235 #if SQLITE_OMIT_DISKIO
236 "OMIT_DISKIO",
237 #endif
238 #if SQLITE_OMIT_EXPLAIN
239 "OMIT_EXPLAIN",
240 #endif
241 #if SQLITE_OMIT_FLAG_PRAGMAS
242 "OMIT_FLAG_PRAGMAS",
243 #endif
244 #if SQLITE_OMIT_FLOATING_POINT
245 "OMIT_FLOATING_POINT",
246 #endif
247 #if SQLITE_OMIT_FOREIGN_KEY
248 "OMIT_FOREIGN_KEY",
249 #endif
250 #if SQLITE_OMIT_GET_TABLE
251 "OMIT_GET_TABLE",
252 #endif
253 #if SQLITE_OMIT_INCRBLOB
254 "OMIT_INCRBLOB",
255 #endif
256 #if SQLITE_OMIT_INTEGRITY_CHECK
257 "OMIT_INTEGRITY_CHECK",
258 #endif
259 #if SQLITE_OMIT_LIKE_OPTIMIZATION
260 "OMIT_LIKE_OPTIMIZATION",
261 #endif
262 #if SQLITE_OMIT_LOAD_EXTENSION
263 "OMIT_LOAD_EXTENSION",
264 #endif
265 #if SQLITE_OMIT_LOCALTIME
266 "OMIT_LOCALTIME",
267 #endif
268 #if SQLITE_OMIT_LOOKASIDE
269 "OMIT_LOOKASIDE",
270 #endif
271 #if SQLITE_OMIT_MEMORYDB
272 "OMIT_MEMORYDB",
273 #endif
274 #if SQLITE_OMIT_OR_OPTIMIZATION
275 "OMIT_OR_OPTIMIZATION",
276 #endif
277 #if SQLITE_OMIT_PAGER_PRAGMAS
278 "OMIT_PAGER_PRAGMAS",
279 #endif
280 #if SQLITE_OMIT_PRAGMA
281 "OMIT_PRAGMA",
282 #endif
283 #if SQLITE_OMIT_PROGRESS_CALLBACK
284 "OMIT_PROGRESS_CALLBACK",
285 #endif
286 #if SQLITE_OMIT_QUICKBALANCE
287 "OMIT_QUICKBALANCE",
288 #endif
289 #if SQLITE_OMIT_REINDEX
290 "OMIT_REINDEX",
291 #endif
292 #if SQLITE_OMIT_SCHEMA_PRAGMAS
293 "OMIT_SCHEMA_PRAGMAS",
294 #endif
295 #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
296 "OMIT_SCHEMA_VERSION_PRAGMAS",
297 #endif
298 #if SQLITE_OMIT_SHARED_CACHE
299 "OMIT_SHARED_CACHE",
300 #endif
301 #if SQLITE_OMIT_SUBQUERY
302 "OMIT_SUBQUERY",
303 #endif
304 #if SQLITE_OMIT_TCL_VARIABLE
305 "OMIT_TCL_VARIABLE",
306 #endif
307 #if SQLITE_OMIT_TEMPDB
308 "OMIT_TEMPDB",
309 #endif
310 #if SQLITE_OMIT_TRACE
311 "OMIT_TRACE",
312 #endif
313 #if SQLITE_OMIT_TRIGGER
314 "OMIT_TRIGGER",
315 #endif
316 #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
317 "OMIT_TRUNCATE_OPTIMIZATION",
318 #endif
319 #if SQLITE_OMIT_UTF16
320 "OMIT_UTF16",
321 #endif
322 #if SQLITE_OMIT_VACUUM
323 "OMIT_VACUUM",
324 #endif
325 #if SQLITE_OMIT_VIEW
326 "OMIT_VIEW",
327 #endif
328 #if SQLITE_OMIT_VIRTUALTABLE
329 "OMIT_VIRTUALTABLE",
330 #endif
331 #if SQLITE_OMIT_WAL
332 "OMIT_WAL",
333 #endif
334 #if SQLITE_OMIT_WSD
335 "OMIT_WSD",
336 #endif
337 #if SQLITE_OMIT_XFER_OPT
338 "OMIT_XFER_OPT",
339 #endif
340 #if SQLITE_PERFORMANCE_TRACE
341 "PERFORMANCE_TRACE",
342 #endif
343 #if SQLITE_PROXY_DEBUG
344 "PROXY_DEBUG",
345 #endif
346 #if SQLITE_SECURE_DELETE
347 "SECURE_DELETE",
348 #endif
349 #if SQLITE_SMALL_STACK
350 "SMALL_STACK",
351 #endif
352 #if SQLITE_SOUNDEX
353 "SOUNDEX",
354 #endif
355 #if SQLITE_TCL
356 "TCL",
357 #endif
358 //#if SQLITE_TEMP_STORE
359 "TEMP_STORE=1",//CTIMEOPT_VAL(SQLITE_TEMP_STORE),
360 //#endif
361 #if SQLITE_TEST
362 "TEST",
363 #endif
364 #if SQLITE_THREADSAFE
365 "THREADSAFE=2", // For C#, hardcode to = 2 CTIMEOPT_VAL(SQLITE_THREADSAFE),
366 #else
367 "THREADSAFE=0", // For C#, hardcode to = 0
368 #endif
369 #if SQLITE_USE_ALLOCA
370 "USE_ALLOCA",
371 #endif
372 #if SQLITE_ZERO_MALLOC
373 "ZERO_MALLOC"
374 #endif
375 };
376  
377 /*
378 ** Given the name of a compile-time option, return true if that option
379 ** was used and false if not.
380 **
381 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
382 ** is not required for a match.
383 */
384 static int sqlite3_compileoption_used (string zOptName)
385 {
386 if (zOptName.EndsWith ("="))
387 return 0;
388 int i, n = 0;
389 if (zOptName.StartsWith ("SQLITE_", System.StringComparison.OrdinalIgnoreCase))
390 n = 7;
391 //n = sqlite3Strlen30(zOptName);
392  
393 /* Since ArraySize(azCompileOpt) is normally in single digits, a
394 ** linear search is adequate. No need for a binary search. */
395 if (!string.IsNullOrEmpty (zOptName)) {
396 for (i = 0; i < ArraySize( azCompileOpt ); i++) {
397 int n1 = (zOptName.Length - n < azCompileOpt [i].Length) ? zOptName.Length - n : azCompileOpt [i].Length;
398 if (String.Compare (zOptName, n, azCompileOpt [i], 0, n1, StringComparison.OrdinalIgnoreCase) == 0)
399 return 1;
400 }
401 }
402 return 0;
403 }
404  
405 /*
406 ** Return the N-th compile-time option string. If N is out of range,
407 ** return a NULL pointer.
408 */
409 static string sqlite3_compileoption_get( int N )
410 {
411 if ( N >= 0 && N < ArraySize( azCompileOpt ) )
412 {
413 return azCompileOpt[N];
414 }
415 return null;
416 }
417  
418 #endif //* SQLITE_OMIT_COMPILEOPTION_DIAGS */
419 }
420 }