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

Side by Side Diff: third_party/sqlite/src/src/global.c

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 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
« no previous file with comments | « third_party/sqlite/src/src/func.c ('k') | third_party/sqlite/src/src/hash.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ** 2008 June 13 2 ** 2008 June 13
3 ** 3 **
4 ** The author disclaims copyright to this source code. In place of 4 ** The author disclaims copyright to this source code. In place of
5 ** a legal notice, here is a blessing: 5 ** a legal notice, here is a blessing:
6 ** 6 **
7 ** May you do good and not evil. 7 ** May you do good and not evil.
8 ** May you find forgiveness for yourself and forgive others. 8 ** May you find forgiveness for yourself and forgive others.
9 ** May you share freely, never taking more than you give. 9 ** May you share freely, never taking more than you give.
10 ** 10 **
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 ** The following 256 byte lookup table is used to support SQLites built-in 63 ** The following 256 byte lookup table is used to support SQLites built-in
64 ** equivalents to the following standard library functions: 64 ** equivalents to the following standard library functions:
65 ** 65 **
66 ** isspace() 0x01 66 ** isspace() 0x01
67 ** isalpha() 0x02 67 ** isalpha() 0x02
68 ** isdigit() 0x04 68 ** isdigit() 0x04
69 ** isalnum() 0x06 69 ** isalnum() 0x06
70 ** isxdigit() 0x08 70 ** isxdigit() 0x08
71 ** toupper() 0x20 71 ** toupper() 0x20
72 ** SQLite identifier character 0x40 72 ** SQLite identifier character 0x40
73 ** Quote character 0x80
73 ** 74 **
74 ** Bit 0x20 is set if the mapped character requires translation to upper 75 ** Bit 0x20 is set if the mapped character requires translation to upper
75 ** case. i.e. if the character is a lower-case ASCII character. 76 ** case. i.e. if the character is a lower-case ASCII character.
76 ** If x is a lower-case ASCII character, then its upper-case equivalent 77 ** If x is a lower-case ASCII character, then its upper-case equivalent
77 ** is (x - 0x20). Therefore toupper() can be implemented as: 78 ** is (x - 0x20). Therefore toupper() can be implemented as:
78 ** 79 **
79 ** (x & ~(map[x]&0x20)) 80 ** (x & ~(map[x]&0x20))
80 ** 81 **
81 ** Standard function tolower() is implemented using the sqlite3UpperToLower[] 82 ** The equivalent of tolower() is implemented using the sqlite3UpperToLower[]
82 ** array. tolower() is used more often than toupper() by SQLite. 83 ** array. tolower() is used more often than toupper() by SQLite.
83 ** 84 **
84 ** Bit 0x40 is set if the character non-alphanumeric and can be used in an 85 ** Bit 0x40 is set if the character is non-alphanumeric and can be used in an
85 ** SQLite identifier. Identifiers are alphanumerics, "_", "$", and any 86 ** SQLite identifier. Identifiers are alphanumerics, "_", "$", and any
86 ** non-ASCII UTF character. Hence the test for whether or not a character is 87 ** non-ASCII UTF character. Hence the test for whether or not a character is
87 ** part of an identifier is 0x46. 88 ** part of an identifier is 0x46.
88 **
89 ** SQLite's versions are identical to the standard versions assuming a
90 ** locale of "C". They are implemented as macros in sqliteInt.h.
91 */ 89 */
92 #ifdef SQLITE_ASCII 90 #ifdef SQLITE_ASCII
93 const unsigned char sqlite3CtypeMap[256] = { 91 const unsigned char sqlite3CtypeMap[256] = {
94 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00..07 ........ */ 92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00..07 ........ */
95 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, /* 08..0f ........ */ 93 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, /* 08..0f ........ */
96 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10..17 ........ */ 94 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10..17 ........ */
97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 18..1f ........ */ 95 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 18..1f ........ */
98 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, /* 20..27 !"#$%&' */ 96 0x01, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x80, /* 20..27 !"#$%&' */
99 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28..2f ()*+,-./ */ 97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28..2f ()*+,-./ */
100 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, /* 30..37 01234567 */ 98 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, /* 30..37 01234567 */
101 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 38..3f 89:;<=>? */ 99 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 38..3f 89:;<=>? */
102 100
103 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x02, /* 40..47 @ABCDEFG */ 101 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x02, /* 40..47 @ABCDEFG */
104 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 48..4f HIJKLMNO */ 102 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 48..4f HIJKLMNO */
105 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 50..57 PQRSTUVW */ 103 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 50..57 PQRSTUVW */
106 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, /* 58..5f XYZ[\]^_ */ 104 0x02, 0x02, 0x02, 0x80, 0x00, 0x00, 0x00, 0x40, /* 58..5f XYZ[\]^_ */
107 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x22, /* 60..67 `abcdefg */ 105 0x80, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x22, /* 60..67 `abcdefg */
108 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 68..6f hijklmno */ 106 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 68..6f hijklmno */
109 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 70..77 pqrstuvw */ 107 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 70..77 pqrstuvw */
110 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, /* 78..7f xyz{|}~. */ 108 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, /* 78..7f xyz{|}~. */
111 109
112 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 80..87 ........ */ 110 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 80..87 ........ */
113 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 88..8f ........ */ 111 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 88..8f ........ */
114 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 90..97 ........ */ 112 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 90..97 ........ */
115 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 98..9f ........ */ 113 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 98..9f ........ */
116 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a0..a7 ........ */ 114 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a0..a7 ........ */
117 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a8..af ........ */ 115 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a8..af ........ */
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 # define SQLITE_ALLOW_COVERING_INDEX_SCAN 1 150 # define SQLITE_ALLOW_COVERING_INDEX_SCAN 1
153 #endif 151 #endif
154 152
155 /* The minimum PMA size is set to this value multiplied by the database 153 /* The minimum PMA size is set to this value multiplied by the database
156 ** page size in bytes. 154 ** page size in bytes.
157 */ 155 */
158 #ifndef SQLITE_SORTER_PMASZ 156 #ifndef SQLITE_SORTER_PMASZ
159 # define SQLITE_SORTER_PMASZ 250 157 # define SQLITE_SORTER_PMASZ 250
160 #endif 158 #endif
161 159
160 /* Statement journals spill to disk when their size exceeds the following
161 ** threshold (in bytes). 0 means that statement journals are created and
162 ** written to disk immediately (the default behavior for SQLite versions
163 ** before 3.12.0). -1 means always keep the entire statement journal in
164 ** memory. (The statement journal is also always held entirely in memory
165 ** if journal_mode=MEMORY or if temp_store=MEMORY, regardless of this
166 ** setting.)
167 */
168 #ifndef SQLITE_STMTJRNL_SPILL
169 # define SQLITE_STMTJRNL_SPILL (64*1024)
170 #endif
171
172 /*
173 ** The default lookaside-configuration, the format "SZ,N". SZ is the
174 ** number of bytes in each lookaside slot (should be a multiple of 8)
175 ** and N is the number of slots. The lookaside-configuration can be
176 ** changed as start-time using sqlite3_config(SQLITE_CONFIG_LOOKASIDE)
177 ** or at run-time for an individual database connection using
178 ** sqlite3_db_config(db, SQLITE_DBCONFIG_LOOKASIDE);
179 */
180 #ifndef SQLITE_DEFAULT_LOOKASIDE
181 # define SQLITE_DEFAULT_LOOKASIDE 1200,100
182 #endif
183
184
162 /* 185 /*
163 ** The following singleton contains the global configuration for 186 ** The following singleton contains the global configuration for
164 ** the SQLite library. 187 ** the SQLite library.
165 */ 188 */
166 SQLITE_WSD struct Sqlite3Config sqlite3Config = { 189 SQLITE_WSD struct Sqlite3Config sqlite3Config = {
167 SQLITE_DEFAULT_MEMSTATUS, /* bMemstat */ 190 SQLITE_DEFAULT_MEMSTATUS, /* bMemstat */
168 1, /* bCoreMutex */ 191 1, /* bCoreMutex */
169 SQLITE_THREADSAFE==1, /* bFullMutex */ 192 SQLITE_THREADSAFE==1, /* bFullMutex */
170 SQLITE_USE_URI, /* bOpenUri */ 193 SQLITE_USE_URI, /* bOpenUri */
171 SQLITE_ALLOW_COVERING_INDEX_SCAN, /* bUseCis */ 194 SQLITE_ALLOW_COVERING_INDEX_SCAN, /* bUseCis */
172 0x7ffffffe, /* mxStrlen */ 195 0x7ffffffe, /* mxStrlen */
173 0, /* neverCorrupt */ 196 0, /* neverCorrupt */
174 128, /* szLookaside */ 197 SQLITE_DEFAULT_LOOKASIDE, /* szLookaside, nLookaside */
175 500, /* nLookaside */ 198 SQLITE_STMTJRNL_SPILL, /* nStmtSpill */
176 {0,0,0,0,0,0,0,0}, /* m */ 199 {0,0,0,0,0,0,0,0}, /* m */
177 {0,0,0,0,0,0,0,0,0}, /* mutex */ 200 {0,0,0,0,0,0,0,0,0}, /* mutex */
178 {0,0,0,0,0,0,0,0,0,0,0,0,0},/* pcache2 */ 201 {0,0,0,0,0,0,0,0,0,0,0,0,0},/* pcache2 */
179 (void*)0, /* pHeap */ 202 (void*)0, /* pHeap */
180 0, /* nHeap */ 203 0, /* nHeap */
181 0, 0, /* mnHeap, mxHeap */ 204 0, 0, /* mnHeap, mxHeap */
182 SQLITE_DEFAULT_MMAP_SIZE, /* szMmap */ 205 SQLITE_DEFAULT_MMAP_SIZE, /* szMmap */
183 SQLITE_MAX_MMAP_SIZE, /* mxMmap */ 206 SQLITE_MAX_MMAP_SIZE, /* mxMmap */
184 (void*)0, /* pScratch */ 207 (void*)0, /* pScratch */
185 0, /* szScratch */ 208 0, /* szScratch */
(...skipping 15 matching lines...) Expand all
201 0, /* xLog */ 224 0, /* xLog */
202 0, /* pLogArg */ 225 0, /* pLogArg */
203 #ifdef SQLITE_ENABLE_SQLLOG 226 #ifdef SQLITE_ENABLE_SQLLOG
204 0, /* xSqllog */ 227 0, /* xSqllog */
205 0, /* pSqllogArg */ 228 0, /* pSqllogArg */
206 #endif 229 #endif
207 #ifdef SQLITE_VDBE_COVERAGE 230 #ifdef SQLITE_VDBE_COVERAGE
208 0, /* xVdbeBranch */ 231 0, /* xVdbeBranch */
209 0, /* pVbeBranchArg */ 232 0, /* pVbeBranchArg */
210 #endif 233 #endif
211 #ifndef SQLITE_OMIT_BUILTIN_TEST 234 #ifndef SQLITE_UNTESTABLE
212 0, /* xTestCallback */ 235 0, /* xTestCallback */
213 #endif 236 #endif
214 0 /* bLocaltimeFault */ 237 0, /* bLocaltimeFault */
238 0x7ffffffe /* iOnceResetThreshold */
215 }; 239 };
216 240
217 /* 241 /*
218 ** Hash table for global functions - functions common to all 242 ** Hash table for global functions - functions common to all
219 ** database connections. After initialization, this table is 243 ** database connections. After initialization, this table is
220 ** read-only. 244 ** read-only.
221 */ 245 */
222 SQLITE_WSD FuncDefHash sqlite3GlobalFunctions; 246 FuncDefHash sqlite3BuiltinFunctions;
223 247
224 /* 248 /*
225 ** Constant tokens for values 0 and 1. 249 ** Constant tokens for values 0 and 1.
226 */ 250 */
227 const Token sqlite3IntTokens[] = { 251 const Token sqlite3IntTokens[] = {
228 { "0", 1 }, 252 { "0", 1 },
229 { "1", 1 } 253 { "1", 1 }
230 }; 254 };
231 255
232 256
233 /* 257 /*
234 ** The value of the "pending" byte must be 0x40000000 (1 byte past the 258 ** The value of the "pending" byte must be 0x40000000 (1 byte past the
235 ** 1-gibabyte boundary) in a compatible database. SQLite never uses 259 ** 1-gibabyte boundary) in a compatible database. SQLite never uses
236 ** the database page that contains the pending byte. It never attempts 260 ** the database page that contains the pending byte. It never attempts
237 ** to read or write that page. The pending byte page is set assign 261 ** to read or write that page. The pending byte page is set aside
238 ** for use by the VFS layers as space for managing file locks. 262 ** for use by the VFS layers as space for managing file locks.
239 ** 263 **
240 ** During testing, it is often desirable to move the pending byte to 264 ** During testing, it is often desirable to move the pending byte to
241 ** a different position in the file. This allows code that has to 265 ** a different position in the file. This allows code that has to
242 ** deal with the pending byte to run on files that are much smaller 266 ** deal with the pending byte to run on files that are much smaller
243 ** than 1 GiB. The sqlite3_test_control() interface can be used to 267 ** than 1 GiB. The sqlite3_test_control() interface can be used to
244 ** move the pending byte. 268 ** move the pending byte.
245 ** 269 **
246 ** IMPORTANT: Changing the pending byte to any value other than 270 ** IMPORTANT: Changing the pending byte to any value other than
247 ** 0x40000000 results in an incompatible database file format! 271 ** 0x40000000 results in an incompatible database file format!
(...skipping 10 matching lines...) Expand all
258 ** created by mkopcodeh.awk during compilation. Data is obtained 282 ** created by mkopcodeh.awk during compilation. Data is obtained
259 ** from the comments following the "case OP_xxxx:" statements in 283 ** from the comments following the "case OP_xxxx:" statements in
260 ** the vdbe.c file. 284 ** the vdbe.c file.
261 */ 285 */
262 const unsigned char sqlite3OpcodeProperty[] = OPFLG_INITIALIZER; 286 const unsigned char sqlite3OpcodeProperty[] = OPFLG_INITIALIZER;
263 287
264 /* 288 /*
265 ** Name of the default collating sequence 289 ** Name of the default collating sequence
266 */ 290 */
267 const char sqlite3StrBINARY[] = "BINARY"; 291 const char sqlite3StrBINARY[] = "BINARY";
OLDNEW
« no previous file with comments | « third_party/sqlite/src/src/func.c ('k') | third_party/sqlite/src/src/hash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698