Hi, Has anyone tried or succeeded in building SQLite 3.0 with a compiler that doesn't support 64 bit integers? Alternatively, does anyone know what won't work with a version built with 32 bit ints only?
The databases we use are not so big that they need 64 bit keys etc. We are satisfied with the 32 bit int values used in version 2, and one of the compilers we use doesn't support 64 bit ints. My idea is to modify the definitions of sqlite_int64 and sqlite_uint64 to use long and unsigned long in sqlite3.h then build a custom library. I understand that this may not be compatible with third party sqlite3 tools. I currently get a couple of warnings regarding some hardcoded 64 bit constants in vdbe.c and vdbeaux.c. Also there are some asserts in btree.c that check the size of i64 and u64 that will fail with DEBUG defined. There are functions that check if a given string of digits can be converted to fit in a 64 bit value that will have to change. Preliminary testing of this custom version seems to work. I get warnings when building the test suite, but it runs through most of the tests (including the bigfile tests). The testfixture dies for btree-1.6, capi3-8.2 and I get failures several other tests (show below) that all appear to be directly related to numbers bigger than 32 bits. Failures on these tests: bind-3.1 bind-3.2 bind-4.1 func-11.1 misc1-9.1 misc2-4.1 misc2-4.2 misc2-4.3 misc2-4.4 misc2-4.5 misc2-4.6 misc3-3.6 misc3-3.7 misc3-3.8 misc3-3.9 misc3-3.10 misc3-3.11 misc3-3.12 misc3-3.13 misc3-3.14 pager-2.3.6 pager2-2.3.6 printf-8.3 printf-8.4 printf-8.5 rowid-7.7 rowid-12.2 types-2.1.8 types-2.1.9 Does anyone know of any gotcha's I should expect? TIA Dennis Cote