Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: third_party/sqlite/sqlite-src-3170000/src/ctime.c

Issue 2747283002: [sql] Import reference version of SQLite 3.17.. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 ** 2010 February 23
3 **
4 ** The author disclaims copyright to this source code. In place of
5 ** a legal notice, here is a blessing:
6 **
7 ** May you do good and not evil.
8 ** May you find forgiveness for yourself and forgive others.
9 ** May you share freely, never taking more than you give.
10 **
11 *************************************************************************
12 **
13 ** This file implements routines used to report what compile-time options
14 ** SQLite was built with.
15 */
16
17 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
18
19 #include "sqliteInt.h"
20
21 /*
22 ** An array of names of all compile-time options. This array should
23 ** be sorted A-Z.
24 **
25 ** This array looks large, but in a typical installation actually uses
26 ** only a handful of compile-time options, so most times this array is usually
27 ** rather short and uses little memory space.
28 */
29 static const char * const azCompileOpt[] = {
30
31 /* These macros are provided to "stringify" the value of the define
32 ** for those options in which the value is meaningful. */
33 #define CTIMEOPT_VAL_(opt) #opt
34 #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
35
36 #if SQLITE_32BIT_ROWID
37 "32BIT_ROWID",
38 #endif
39 #if SQLITE_4_BYTE_ALIGNED_MALLOC
40 "4_BYTE_ALIGNED_MALLOC",
41 #endif
42 #if SQLITE_CASE_SENSITIVE_LIKE
43 "CASE_SENSITIVE_LIKE",
44 #endif
45 #if SQLITE_CHECK_PAGES
46 "CHECK_PAGES",
47 #endif
48 #if defined(__clang__) && defined(__clang_major__)
49 "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
50 CTIMEOPT_VAL(__clang_minor__) "."
51 CTIMEOPT_VAL(__clang_patchlevel__),
52 #elif defined(_MSC_VER)
53 "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
54 #elif defined(__GNUC__) && defined(__VERSION__)
55 "COMPILER=gcc-" __VERSION__,
56 #endif
57 #if SQLITE_COVERAGE_TEST
58 "COVERAGE_TEST",
59 #endif
60 #if SQLITE_DEBUG
61 "DEBUG",
62 #endif
63 #if SQLITE_DEFAULT_LOCKING_MODE
64 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
65 #endif
66 #if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc)
67 "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
68 #endif
69 #if SQLITE_DIRECT_OVERFLOW_READ
70 "DIRECT_OVERFLOW_READ",
71 #endif
72 #if SQLITE_DISABLE_DIRSYNC
73 "DISABLE_DIRSYNC",
74 #endif
75 #if SQLITE_DISABLE_LFS
76 "DISABLE_LFS",
77 #endif
78 #if SQLITE_ENABLE_8_3_NAMES
79 "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
80 #endif
81 #if SQLITE_ENABLE_API_ARMOR
82 "ENABLE_API_ARMOR",
83 #endif
84 #if SQLITE_ENABLE_ATOMIC_WRITE
85 "ENABLE_ATOMIC_WRITE",
86 #endif
87 #if SQLITE_ENABLE_CEROD
88 "ENABLE_CEROD",
89 #endif
90 #if SQLITE_ENABLE_COLUMN_METADATA
91 "ENABLE_COLUMN_METADATA",
92 #endif
93 #if SQLITE_ENABLE_DBSTAT_VTAB
94 "ENABLE_DBSTAT_VTAB",
95 #endif
96 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
97 "ENABLE_EXPENSIVE_ASSERT",
98 #endif
99 #if SQLITE_ENABLE_FTS1
100 "ENABLE_FTS1",
101 #endif
102 #if SQLITE_ENABLE_FTS2
103 "ENABLE_FTS2",
104 #endif
105 #if SQLITE_ENABLE_FTS3
106 "ENABLE_FTS3",
107 #endif
108 #if SQLITE_ENABLE_FTS3_PARENTHESIS
109 "ENABLE_FTS3_PARENTHESIS",
110 #endif
111 #if SQLITE_ENABLE_FTS4
112 "ENABLE_FTS4",
113 #endif
114 #if SQLITE_ENABLE_FTS5
115 "ENABLE_FTS5",
116 #endif
117 #if SQLITE_ENABLE_ICU
118 "ENABLE_ICU",
119 #endif
120 #if SQLITE_ENABLE_IOTRACE
121 "ENABLE_IOTRACE",
122 #endif
123 #if SQLITE_ENABLE_JSON1
124 "ENABLE_JSON1",
125 #endif
126 #if SQLITE_ENABLE_LOAD_EXTENSION
127 "ENABLE_LOAD_EXTENSION",
128 #endif
129 #if SQLITE_ENABLE_LOCKING_STYLE
130 "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
131 #endif
132 #if SQLITE_ENABLE_MEMORY_MANAGEMENT
133 "ENABLE_MEMORY_MANAGEMENT",
134 #endif
135 #if SQLITE_ENABLE_MEMSYS3
136 "ENABLE_MEMSYS3",
137 #endif
138 #if SQLITE_ENABLE_MEMSYS5
139 "ENABLE_MEMSYS5",
140 #endif
141 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
142 "ENABLE_OVERSIZE_CELL_CHECK",
143 #endif
144 #if SQLITE_ENABLE_RTREE
145 "ENABLE_RTREE",
146 #endif
147 #if defined(SQLITE_ENABLE_STAT4)
148 "ENABLE_STAT4",
149 #elif defined(SQLITE_ENABLE_STAT3)
150 "ENABLE_STAT3",
151 #endif
152 #if SQLITE_ENABLE_UNLOCK_NOTIFY
153 "ENABLE_UNLOCK_NOTIFY",
154 #endif
155 #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
156 "ENABLE_UPDATE_DELETE_LIMIT",
157 #endif
158 #if defined(SQLITE_ENABLE_URI_00_ERROR)
159 "ENABLE_URI_00_ERROR",
160 #endif
161 #if SQLITE_HAS_CODEC
162 "HAS_CODEC",
163 #endif
164 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
165 "HAVE_ISNAN",
166 #endif
167 #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
168 "HOMEGROWN_RECURSIVE_MUTEX",
169 #endif
170 #if SQLITE_IGNORE_AFP_LOCK_ERRORS
171 "IGNORE_AFP_LOCK_ERRORS",
172 #endif
173 #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
174 "IGNORE_FLOCK_LOCK_ERRORS",
175 #endif
176 #ifdef SQLITE_INT64_TYPE
177 "INT64_TYPE",
178 #endif
179 #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
180 "LIKE_DOESNT_MATCH_BLOBS",
181 #endif
182 #if SQLITE_LOCK_TRACE
183 "LOCK_TRACE",
184 #endif
185 #if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc)
186 "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
187 #endif
188 #ifdef SQLITE_MAX_SCHEMA_RETRY
189 "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
190 #endif
191 #if SQLITE_MEMDEBUG
192 "MEMDEBUG",
193 #endif
194 #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
195 "MIXED_ENDIAN_64BIT_FLOAT",
196 #endif
197 #if SQLITE_NO_SYNC
198 "NO_SYNC",
199 #endif
200 #if SQLITE_OMIT_ALTERTABLE
201 "OMIT_ALTERTABLE",
202 #endif
203 #if SQLITE_OMIT_ANALYZE
204 "OMIT_ANALYZE",
205 #endif
206 #if SQLITE_OMIT_ATTACH
207 "OMIT_ATTACH",
208 #endif
209 #if SQLITE_OMIT_AUTHORIZATION
210 "OMIT_AUTHORIZATION",
211 #endif
212 #if SQLITE_OMIT_AUTOINCREMENT
213 "OMIT_AUTOINCREMENT",
214 #endif
215 #if SQLITE_OMIT_AUTOINIT
216 "OMIT_AUTOINIT",
217 #endif
218 #if SQLITE_OMIT_AUTOMATIC_INDEX
219 "OMIT_AUTOMATIC_INDEX",
220 #endif
221 #if SQLITE_OMIT_AUTORESET
222 "OMIT_AUTORESET",
223 #endif
224 #if SQLITE_OMIT_AUTOVACUUM
225 "OMIT_AUTOVACUUM",
226 #endif
227 #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
228 "OMIT_BETWEEN_OPTIMIZATION",
229 #endif
230 #if SQLITE_OMIT_BLOB_LITERAL
231 "OMIT_BLOB_LITERAL",
232 #endif
233 #if SQLITE_OMIT_BTREECOUNT
234 "OMIT_BTREECOUNT",
235 #endif
236 #if SQLITE_OMIT_CAST
237 "OMIT_CAST",
238 #endif
239 #if SQLITE_OMIT_CHECK
240 "OMIT_CHECK",
241 #endif
242 #if SQLITE_OMIT_COMPLETE
243 "OMIT_COMPLETE",
244 #endif
245 #if SQLITE_OMIT_COMPOUND_SELECT
246 "OMIT_COMPOUND_SELECT",
247 #endif
248 #if SQLITE_OMIT_CTE
249 "OMIT_CTE",
250 #endif
251 #if SQLITE_OMIT_DATETIME_FUNCS
252 "OMIT_DATETIME_FUNCS",
253 #endif
254 #if SQLITE_OMIT_DECLTYPE
255 "OMIT_DECLTYPE",
256 #endif
257 #if SQLITE_OMIT_DEPRECATED
258 "OMIT_DEPRECATED",
259 #endif
260 #if SQLITE_OMIT_DISKIO
261 "OMIT_DISKIO",
262 #endif
263 #if SQLITE_OMIT_EXPLAIN
264 "OMIT_EXPLAIN",
265 #endif
266 #if SQLITE_OMIT_FLAG_PRAGMAS
267 "OMIT_FLAG_PRAGMAS",
268 #endif
269 #if SQLITE_OMIT_FLOATING_POINT
270 "OMIT_FLOATING_POINT",
271 #endif
272 #if SQLITE_OMIT_FOREIGN_KEY
273 "OMIT_FOREIGN_KEY",
274 #endif
275 #if SQLITE_OMIT_GET_TABLE
276 "OMIT_GET_TABLE",
277 #endif
278 #if SQLITE_OMIT_INCRBLOB
279 "OMIT_INCRBLOB",
280 #endif
281 #if SQLITE_OMIT_INTEGRITY_CHECK
282 "OMIT_INTEGRITY_CHECK",
283 #endif
284 #if SQLITE_OMIT_LIKE_OPTIMIZATION
285 "OMIT_LIKE_OPTIMIZATION",
286 #endif
287 #if SQLITE_OMIT_LOAD_EXTENSION
288 "OMIT_LOAD_EXTENSION",
289 #endif
290 #if SQLITE_OMIT_LOCALTIME
291 "OMIT_LOCALTIME",
292 #endif
293 #if SQLITE_OMIT_LOOKASIDE
294 "OMIT_LOOKASIDE",
295 #endif
296 #if SQLITE_OMIT_MEMORYDB
297 "OMIT_MEMORYDB",
298 #endif
299 #if SQLITE_OMIT_OR_OPTIMIZATION
300 "OMIT_OR_OPTIMIZATION",
301 #endif
302 #if SQLITE_OMIT_PAGER_PRAGMAS
303 "OMIT_PAGER_PRAGMAS",
304 #endif
305 #if SQLITE_OMIT_PRAGMA
306 "OMIT_PRAGMA",
307 #endif
308 #if SQLITE_OMIT_PROGRESS_CALLBACK
309 "OMIT_PROGRESS_CALLBACK",
310 #endif
311 #if SQLITE_OMIT_QUICKBALANCE
312 "OMIT_QUICKBALANCE",
313 #endif
314 #if SQLITE_OMIT_REINDEX
315 "OMIT_REINDEX",
316 #endif
317 #if SQLITE_OMIT_SCHEMA_PRAGMAS
318 "OMIT_SCHEMA_PRAGMAS",
319 #endif
320 #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
321 "OMIT_SCHEMA_VERSION_PRAGMAS",
322 #endif
323 #if SQLITE_OMIT_SHARED_CACHE
324 "OMIT_SHARED_CACHE",
325 #endif
326 #if SQLITE_OMIT_SUBQUERY
327 "OMIT_SUBQUERY",
328 #endif
329 #if SQLITE_OMIT_TCL_VARIABLE
330 "OMIT_TCL_VARIABLE",
331 #endif
332 #if SQLITE_OMIT_TEMPDB
333 "OMIT_TEMPDB",
334 #endif
335 #if SQLITE_OMIT_TRACE
336 "OMIT_TRACE",
337 #endif
338 #if SQLITE_OMIT_TRIGGER
339 "OMIT_TRIGGER",
340 #endif
341 #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
342 "OMIT_TRUNCATE_OPTIMIZATION",
343 #endif
344 #if SQLITE_OMIT_UTF16
345 "OMIT_UTF16",
346 #endif
347 #if SQLITE_OMIT_VACUUM
348 "OMIT_VACUUM",
349 #endif
350 #if SQLITE_OMIT_VIEW
351 "OMIT_VIEW",
352 #endif
353 #if SQLITE_OMIT_VIRTUALTABLE
354 "OMIT_VIRTUALTABLE",
355 #endif
356 #if SQLITE_OMIT_WAL
357 "OMIT_WAL",
358 #endif
359 #if SQLITE_OMIT_WSD
360 "OMIT_WSD",
361 #endif
362 #if SQLITE_OMIT_XFER_OPT
363 "OMIT_XFER_OPT",
364 #endif
365 #if SQLITE_PERFORMANCE_TRACE
366 "PERFORMANCE_TRACE",
367 #endif
368 #if SQLITE_PROXY_DEBUG
369 "PROXY_DEBUG",
370 #endif
371 #if SQLITE_RTREE_INT_ONLY
372 "RTREE_INT_ONLY",
373 #endif
374 #if SQLITE_SECURE_DELETE
375 "SECURE_DELETE",
376 #endif
377 #if SQLITE_SMALL_STACK
378 "SMALL_STACK",
379 #endif
380 #if SQLITE_SOUNDEX
381 "SOUNDEX",
382 #endif
383 #if SQLITE_SYSTEM_MALLOC
384 "SYSTEM_MALLOC",
385 #endif
386 #if SQLITE_TCL
387 "TCL",
388 #endif
389 #if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc)
390 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
391 #endif
392 #if SQLITE_TEST
393 "TEST",
394 #endif
395 #if defined(SQLITE_THREADSAFE)
396 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
397 #endif
398 #if SQLITE_UNTESTABLE
399 "UNTESTABLE"
400 #endif
401 #if SQLITE_USE_ALLOCA
402 "USE_ALLOCA",
403 #endif
404 #if SQLITE_USER_AUTHENTICATION
405 "USER_AUTHENTICATION",
406 #endif
407 #if SQLITE_WIN32_MALLOC
408 "WIN32_MALLOC",
409 #endif
410 #if SQLITE_ZERO_MALLOC
411 "ZERO_MALLOC"
412 #endif
413 };
414
415 /*
416 ** Given the name of a compile-time option, return true if that option
417 ** was used and false if not.
418 **
419 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
420 ** is not required for a match.
421 */
422 int sqlite3_compileoption_used(const char *zOptName){
423 int i, n;
424
425 #if SQLITE_ENABLE_API_ARMOR
426 if( zOptName==0 ){
427 (void)SQLITE_MISUSE_BKPT;
428 return 0;
429 }
430 #endif
431 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
432 n = sqlite3Strlen30(zOptName);
433
434 /* Since ArraySize(azCompileOpt) is normally in single digits, a
435 ** linear search is adequate. No need for a binary search. */
436 for(i=0; i<ArraySize(azCompileOpt); i++){
437 if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
438 && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
439 ){
440 return 1;
441 }
442 }
443 return 0;
444 }
445
446 /*
447 ** Return the N-th compile-time option string. If N is out of range,
448 ** return a NULL pointer.
449 */
450 const char *sqlite3_compileoption_get(int N){
451 if( N>=0 && N<ArraySize(azCompileOpt) ){
452 return azCompileOpt[N];
453 }
454 return 0;
455 }
456
457 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3170000/src/complete.c ('k') | third_party/sqlite/sqlite-src-3170000/src/date.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698