15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 2008 June 13 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The author disclaims copyright to this source code. In place of 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** a legal notice, here is a blessing: 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** May you do good and not evil. 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** May you find forgiveness for yourself and forgive others. 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** May you share freely, never taking more than you give. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)************************************************************************* 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** This file contains definitions of global variables and contants. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sqliteInt.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* An array to map all upper-case characters into their corresponding 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** lower-case character. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** SQLite only considers US-ASCII (or EBCDIC) characters. We do not 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** handle case conversions for the UTF character set since the tables 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** involved are nearly as big or bigger than SQLite itself. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const unsigned char sqlite3UpperToLower[] = { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ASCII 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99,100,101,102,103, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 122, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,104,105,106,107, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 252,253,254,255 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_EBCDIC 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* 0x */ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, /* 1x */ 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, /* 2x */ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* 3x */ 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 4x */ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, /* 5x */ 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 96, 97, 66, 67, 68, 69, 70, 71, 72, 73,106,107,108,109,110,111, /* 6x */ 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 112, 81, 82, 83, 84, 85, 86, 87, 88, 89,122,123,124,125,126,127, /* 7x */ 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, /* 8x */ 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 144,145,146,147,148,149,150,151,152,153,154,155,156,157,156,159, /* 9x */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 160,161,162,163,164,165,166,167,168,169,170,171,140,141,142,175, /* Ax */ 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, /* Bx */ 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 192,129,130,131,132,133,134,135,136,137,202,203,204,205,206,207, /* Cx */ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 208,145,146,147,148,149,150,151,152,153,218,219,220,221,222,223, /* Dx */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 224,225,162,163,164,165,166,167,168,169,232,203,204,205,206,207, /* Ex */ 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 239,240,241,242,243,244,245,246,247,248,249,219,220,221,222,255, /* Fx */ 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The following 256 byte lookup table is used to support SQLites built-in 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** equivalents to the following standard library functions: 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** isspace() 0x01 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** isalpha() 0x02 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** isdigit() 0x04 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** isalnum() 0x06 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** isxdigit() 0x08 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** toupper() 0x20 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** SQLite identifier character 0x40 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Bit 0x20 is set if the mapped character requires translation to upper 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** case. i.e. if the character is a lower-case ASCII character. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** If x is a lower-case ASCII character, then its upper-case equivalent 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** is (x - 0x20). Therefore toupper() can be implemented as: 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** (x & ~(map[x]&0x20)) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Standard function tolower() is implemented using the sqlite3UpperToLower[] 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** array. tolower() is used more often than toupper() by SQLite. 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Bit 0x40 is set if the character non-alphanumeric and can be used in an 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** SQLite identifier. Identifiers are alphanumerics, "_", "$", and any 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** non-ASCII UTF character. Hence the test for whether or not a character is 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** part of an identifier is 0x46. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** SQLite's versions are identical to the standard versions assuming a 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** locale of "C". They are implemented as macros in sqliteInt.h. 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ASCII 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const unsigned char sqlite3CtypeMap[256] = { 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00..07 ........ */ 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, /* 08..0f ........ */ 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10..17 ........ */ 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 18..1f ........ */ 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, /* 20..27 !"#$%&' */ 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28..2f ()*+,-./ */ 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, /* 30..37 01234567 */ 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 38..3f 89:;<=>? */ 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x02, /* 40..47 @ABCDEFG */ 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 48..4f HIJKLMNO */ 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, /* 50..57 PQRSTUVW */ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, /* 58..5f XYZ[\]^_ */ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x00, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x22, /* 60..67 `abcdefg */ 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 68..6f hijklmno */ 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, /* 70..77 pqrstuvw */ 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, /* 78..7f xyz{|}~. */ 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 80..87 ........ */ 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 88..8f ........ */ 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 90..97 ........ */ 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* 98..9f ........ */ 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a0..a7 ........ */ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* a8..af ........ */ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* b0..b7 ........ */ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* b8..bf ........ */ 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* c0..c7 ........ */ 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* c8..cf ........ */ 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* d0..d7 ........ */ 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* d8..df ........ */ 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* e0..e7 ........ */ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* e8..ef ........ */ 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, /* f0..f7 ........ */ 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 /* f8..ff ........ */ 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The following singleton contains the global configuration for 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** the SQLite library. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SQLITE_WSD struct Sqlite3Config sqlite3Config = { 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SQLITE_DEFAULT_MEMSTATUS, /* bMemstat */ 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1, /* bCoreMutex */ 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SQLITE_THREADSAFE==1, /* bFullMutex */ 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7ffffffe, /* mxStrlen */ 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 100, /* szLookaside */ 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 500, /* nLookaside */ 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {0,0,0,0,0,0,0,0}, /* m */ 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {0,0,0,0,0,0,0,0,0}, /* mutex */ 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {0,0,0,0,0,0,0,0,0,0,0}, /* pcache */ 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (void*)0, /* pHeap */ 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* nHeap */ 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, 0, /* mnHeap, mxHeap */ 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (void*)0, /* pScratch */ 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* szScratch */ 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* nScratch */ 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (void*)0, /* pPage */ 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* szPage */ 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* nPage */ 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* mxParserStack */ 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* sharedCacheEnabled */ 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* All the rest should always be initialized to zero */ 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* isInit */ 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* inProgress */ 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* isMutexInit */ 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* isMallocInit */ 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* isPCacheInit */ 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* pInitMutex */ 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* nRefInitMutex */ 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* xLog */ 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, /* pLogArg */ 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Hash table for global functions - functions common to all 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** database connections. After initialization, this table is 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** read-only. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SQLITE_WSD FuncDefHash sqlite3GlobalFunctions; 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Constant tokens for values 0 and 1. 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const Token sqlite3IntTokens[] = { 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "0", 1 }, 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { "1", 1 } 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The value of the "pending" byte must be 0x40000000 (1 byte past the 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 1-gibabyte boundary) in a compatible database. SQLite never uses 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** the database page that contains the pending byte. It never attempts 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** to read or write that page. The pending byte page is set assign 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** for use by the VFS layers as space for managing file locks. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** During testing, it is often desirable to move the pending byte to 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** a different position in the file. This allows code that has to 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** deal with the pending byte to run on files that are much smaller 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** than 1 GiB. The sqlite3_test_control() interface can be used to 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** move the pending byte. 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** IMPORTANT: Changing the pending byte to any value other than 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 0x40000000 results in an incompatible database file format! 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Changing the pending byte during operating results in undefined 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** and dileterious behavior. 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SQLITE_OMIT_WSD 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int sqlite3PendingByte = 0x40000000; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "opcodes.h" 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Properties of opcodes. The OPFLG_INITIALIZER macro is 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** created by mkopcodeh.awk during compilation. Data is obtained 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** from the comments following the "case OP_xxxx:" statements in 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** the vdbe.c file. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const unsigned char sqlite3OpcodeProperty[] = OPFLG_INITIALIZER; 218