drh [Sat, 22 Feb 2025 16:44:14 +0000 (16:44 +0000)]
Tamp down various harmless compiler warnings. Use "int" in places instead
of "u16" or "i16" since the compiler complains less and generates faster
code.
drh [Fri, 21 Feb 2025 20:35:37 +0000 (20:35 +0000)]
The number of declared columns in an index is limited to SQLITE_LIMIT_COLUMN.
But the actual number of columns in the implementation might need to be
twice as much to account for the primary key at the end. Ensure that the
code is able to deal with this. This is a correction to
check-in [d7729dbbf231d57c].
drh [Fri, 21 Feb 2025 17:03:22 +0000 (17:03 +0000)]
Detect when a UNIQUE or PRIMARY KEY on a WITHOUT ROWID table would need
to use more than SQLITE_LIMIT_COLUMN columns and raise an error.
Also include some unrelated compiler warning fixes.
stephan [Fri, 21 Feb 2025 03:19:21 +0000 (03:19 +0000)]
configure: in several places where support for -Wl,... linker flags are checked, ensure that the check invokes the linker (not just the compiler) to avoid false positives. This allows us to remove the AIX-specific handling and --disable-rpath bits added in [a15e0f680], as well as make several similar checks more robust.
stephan [Thu, 20 Feb 2025 17:14:40 +0000 (17:14 +0000)]
configure: automatically fail the check for rpath on AIX systems and provide a --disable-rpath flag as a fallback for use on platforms which pass the configure-time rpath check but then fail at link-time. Based on discussion in [forum:ae5bd8a84b|forum thread ae5bd8a84b].
stephan [Thu, 20 Feb 2025 16:45:45 +0000 (16:45 +0000)]
Fix autoconf bundle to honor the --disable-static and --disable-shared flags, as reported in [forum:ae5bd8a84b|forum post ae5bd8a84b]. Problem introduced in 3.49.0.
stephan [Thu, 20 Feb 2025 04:45:02 +0000 (04:45 +0000)]
wasm makefile docs: make explicit that the node.js-for-node.js builds (as opposed to the node.js-for-browser builds) are both untested and unsupported.
stephan [Thu, 20 Feb 2025 04:14:26 +0000 (04:14 +0000)]
Add the pause/unpause capability to the opfs-sahpool VFS, as discussed in [forum:fe8cdb8431c|forum thread fe8cdb8431c]. Summary: this gives clients a way to eke some degree of multi-page/tab/Worker concurrency out of this VFS but requires that coordination to be implemented client-side, e.g. via a SharedWorker or WebLocks.
stephan [Thu, 20 Feb 2025 03:27:47 +0000 (03:27 +0000)]
configure: when running proj-check-function-in-lib, strip -Werror from CFLAGS for the duration of the test. This enables CFLAGS='-Wall -Werror' and the like to be passed to configure without breaking these configure-time checks.
stephan [Wed, 19 Feb 2025 13:02:23 +0000 (13:02 +0000)]
Slight tweak to the CLI shell help output to help convey that it can accept multiple SQL arguments, as suggested in [forum:20e617feee|forum post 20e617feee].
drh [Mon, 17 Feb 2025 17:33:14 +0000 (17:33 +0000)]
Code changes that make it easier to prove that no 32-bit integer overflows
happen during memory allocation. No problems fixed; this change is just
to make future maintenance easier.
stephan [Mon, 17 Feb 2025 16:04:21 +0000 (16:04 +0000)]
Replace TEXE (legacy name) with T.exe (3.48+ name) in two places in makefiles. This fixes distclean of jimsh.exe in the canonical build in non-native Windows environments.
drh [Mon, 17 Feb 2025 14:16:49 +0000 (14:16 +0000)]
Harden the SQLITE_DBCONFIG_LOOKASIDE interface against misuse, such as
described in [forum:/forumpost/48f365daec|forum post 48f365daec]. Enhancements
to the SQLITE_DBCONFIG_LOOKASIDE documentation. Test cases in TH3.
stephan [Sun, 16 Feb 2025 18:14:05 +0000 (18:14 +0000)]
Re-add the --disable-static-shell configure feature to the autoconf bundle. It got lost in the autoconf-to-autosetup port, as reported in [forum:cc219ee7044|forum post cc219ee7044].
stephan [Sat, 15 Feb 2025 16:12:28 +0000 (16:12 +0000)]
DLL installation rules no longer create versioned symlinks on platforms where the DLL extension is '.dll' (cygwin, msys2, etc.), as suggested in [forum:28bb79638844c328|forum post 28bb79638844c328].
stephan [Fri, 14 Feb 2025 17:21:05 +0000 (17:21 +0000)]
Work around a autosetup --help bug which only(?) triggers on tcl 8.6, introduced by [9978c87139b7b042] and reported upstream as [https://github.com/msteveb/autosetup/issues/73|ticket #73]. Summary: calling 'options' from a proc, instead of the global scope, triggers an error about an invalid use of 'break'.
stephan [Fri, 14 Feb 2025 16:42:37 +0000 (16:42 +0000)]
ICU config support: add more details to error messages and correct a typo which would cause a configure crash if --with-icu-config=X refered to a non-executable X.
drh [Fri, 14 Feb 2025 10:28:28 +0000 (10:28 +0000)]
Fix test cases added for [d7b90d92ffbfc61f] so that they also work when
compiling with ICU support.
[forum:/forumpost/2ca8a09a7e|Forum post 2ca8a09a7e]
dan [Wed, 12 Feb 2025 17:21:24 +0000 (17:21 +0000)]
Have the win32 VFS take a temporary shared lock (instead of the current exclusive) on the pending-byte when taking a SHARED lock on a db. Do not lock the pending-byte at all when taking an EXCLUSIVE lock if RESERVED is not already held.
drh [Tue, 11 Feb 2025 19:40:19 +0000 (19:40 +0000)]
Omit the src/ctime.c source file, since it is automatically generated by a TCL
script. Instead, add rules to the various makefiles to generate ctime.c on
demand.
stephan [Tue, 11 Feb 2025 17:10:10 +0000 (17:10 +0000)]
Move the configure flags definition and handling into autosetup/sqlite-config.tcl to avoid duplication between auto.def and autoconf/auto.def while still giving us a way to filter the canonical-tree-only flags out of the autoconf build.
stephan [Tue, 11 Feb 2025 13:13:46 +0000 (13:13 +0000)]
Make the --out-implib support ([6092b0b86bf93a3d]) specifically opt-in because the feature check for it passes on some platforms where it is not recognized at link-time.
stephan [Tue, 11 Feb 2025 13:00:40 +0000 (13:00 +0000)]
Adapt [https://fossil-scm.org/home/info/3bff7b92d6d|Fossil SCM patch 3bff7b92d6d], applying -lrt for platforms which need it for one of {fdatasync, nanosleep}.
stephan [Mon, 10 Feb 2025 15:58:22 +0000 (15:58 +0000)]
Add jimsh.exe and jimsh0.exe to the clean rules in Makefile.msc so that stale builds of those files from msys2 and friends do not cause mysterious build errors.
stephan [Mon, 10 Feb 2025 15:01:14 +0000 (15:01 +0000)]
configure: when dlopen() is not found, only fail fatally if --enable-loadable-module is explicitly provided, else warn instead. Based on discussion around [forum:2efe9c33bd9021ca|forum post 2efe9c33bd9021ca]. Update proj-indented-notice to behave like its docs say it should when the -error flag is used.
stephan [Sun, 9 Feb 2025 04:38:56 +0000 (04:38 +0000)]
configure: if the linker supports --out-implib, generate libsqlite3.X.a, where X is the platform's DLL file extension. Discussion in/around [forum:0c7fc097b2|forum post 0c7fc097b2].
stephan [Sun, 9 Feb 2025 04:16:01 +0000 (04:16 +0000)]
wasm: add some build-time validation to ensure that the problem fixed in [65798c09a00662a3] does not recur. Ensure that files generated via mkwasmbuilds.c have the generated makefile as a dependency.
stephan [Sun, 9 Feb 2025 03:24:00 +0000 (03:24 +0000)]
wasm: when building in -O0 mode (typical dev mode), use -sASSERTIONS=2, else -sASSERTIONS=0, in response [https://github.com/emscripten-core/emscripten/pull/23629/commits/7e3e35cbff9c5688eacb3cddc5045f872d744efd|Emscripten checkin 7e3e35cbff9], which adds assertions to check for the condition reported in [https://github.com/emscripten-core/emscripten/issues/23420|Emscripten ticket 23420]. Update some unrelated JS-side internal docs.
stephan [Sun, 9 Feb 2025 01:25:00 +0000 (01:25 +0000)]
configure: when transfering ENABLE/OMIT flags from CFLAGS to OPT_FEATURE_FLAGS, also do the same for CPPFLAGS and remove those ENABLE/OMIT flags from CFLAGS/CPPFLAGS to mimic legacy build behavior. Strip ENABLE/OMIT flags from BUILD_CFLAGS but do not transfer those to OPT_FEATURE_FLAGS, also to mimic legacy behavior. This is the second part of a fix discussed at [forum:9801e54665afd728|forum post 9801e54665afd728].
drh [Sat, 8 Feb 2025 14:15:42 +0000 (14:15 +0000)]
Use the sqlite3ColumnIndex() routine to look up a column in a table, rather
than using a custom loop. Performance improvement, size reduction, and
complexity decrease.
drh [Sat, 8 Feb 2025 11:15:41 +0000 (11:15 +0000)]
Improvements to the hash table used to store symbols in the schema, so that
it works better (requires fewer calls to sqlite3StrICmp()) for large schemas,
and uses less code space.
drh [Fri, 7 Feb 2025 19:09:20 +0000 (19:09 +0000)]
Fix comments on the Parse.nMaxArgs field so that they are correct. Add
assert()s to ensure they are correct. Other Parse changes to reduce the
amount of memset() needed to initialize it.
stephan [Fri, 7 Feb 2025 12:58:09 +0000 (12:58 +0000)]
configure: change extension of static libraries from .lib to .a on msys/cygwin, as per discussion in [forum:02db2d4240|forum post 02db2d4240]. Replace unidiomatic JS-style use of inner procs in autosetup/proj.tcl with TCL lambdas.
stephan [Fri, 7 Feb 2025 12:33:48 +0000 (12:33 +0000)]
Reorder a piece of ext/wasm/GNUmakefile to correct the timing of various var accesses. Fixes a problem [https://github.com/sqlite/sqlite-wasm/pull/99|reported in the downstream npm subproject] and explains the confusion in [4aa025a943a4024094b9] (which has been reverted).
stephan [Thu, 6 Feb 2025 13:18:49 +0000 (13:18 +0000)]
Fix a dependencies/order-of-operations bug in ext/wasm/GNUmakefile which causes creation of files filtered via c-pp to fail if the ext/wasm/jswasm dir did not exist beforehand.