dan [Thu, 27 Feb 2025 11:03:54 +0000 (11:03 +0000)]
Add support for SQLITE_EXTRA_INIT_MUTEXED - like SQLITE_EXTRA_INIT, but is called from within sqlite3_initialize() when the SQLITE_MUTEX_STATIC_MAIN mutex is still held.
stephan [Wed, 26 Feb 2025 19:22:52 +0000 (19:22 +0000)]
Teach testrunner how to run local binaries which have a .exe extension. Also teach it to recognized mingw environments (but actually building the test programs there currently doesn't work).
stephan [Wed, 26 Feb 2025 17:11:25 +0000 (17:11 +0000)]
Undo part of [69e83ab859c], as that order of operations breaks the --prefix=... configure flag. Found a workaround for the library version and OS/environment info being emitted when --help.
stephan [Wed, 26 Feb 2025 16:15:34 +0000 (16:15 +0000)]
configure: extend the readline detection a bit so that it can find readline on termux environments without having to be told where it is. Fix a typo in a libedit-related message.
stephan [Tue, 25 Feb 2025 20:55:14 +0000 (20:55 +0000)]
Approximately 50 typo fixes, spanning the whole tree, contributed via [forum:006c8fa165083ac3|forum post 006c8fa165083ac3] and individually checked for correctness. Affects only code comments, docs, and a single line of debug output in a test app.
drh [Tue, 25 Feb 2025 20:10:46 +0000 (20:10 +0000)]
Change the default control-character escape algorithm from "symbol" to
"ascii", since the "ascii" algorithm works even on terminals that do
not support unicode.
drh [Tue, 25 Feb 2025 15:57:49 +0000 (15:57 +0000)]
Enhancements to help avoid problems in the CLI when trying display content
that contains ANSI escape codes: (1) Add the --escape MODE option to the CLI
where MODE is one of "symbol", "ascii", "off" where the default is "symbol".
(2) Add the unistr() SQL function. (3) Add the unistr_quote() SQL function.
(4) Add the %#Q and %#q conversions in the built-in printf.
stephan [Tue, 25 Feb 2025 15:54:07 +0000 (15:54 +0000)]
Diverse configure tweaks to better support package maintainers on the unix-on-windows environments like msys2, cygwin, and mingw, based largely on feedback in forum posts [forum:e6cf2bbb70da2922|e6cf2bbb70da2922] and [forum:828fdfe9041fd725|828fdfe9041fd725].
dan [Tue, 25 Feb 2025 15:27:55 +0000 (15:27 +0000)]
Reinstate the assert() removed by [0f6223b8]. Avoid holding a wal-mode write lock after the transaction has been rolled back if an IO error occurs while restarting the wal file.
stephan [Mon, 24 Feb 2025 18:45:30 +0000 (18:45 +0000)]
autoconf/auto.def: remove a define which made superfluous by [b8bf966628c0]. Add a check/status message for whether to statically link the library into the CLI shell.
stephan [Mon, 24 Feb 2025 18:14:27 +0000 (18:14 +0000)]
configure: in autoconf build if both --disable-shared and --disable-static-shell are used together, ignore the former and emit a notice to that effect.
stephan [Mon, 24 Feb 2025 12:19:06 +0000 (12:19 +0000)]
Configure doc tweaks. Move the package version/build dir output so that it does not appear at the start of --help text, but otherwise still appears before the first output from low-level config initialization.
stephan [Mon, 24 Feb 2025 11:21:32 +0000 (11:21 +0000)]
Further consolidation of auto.def and autoconf/auto.def. Note in configure --help that --disable-largefile is a legacy option which has no effect on the library but may influence the generated sqlite_cfg.h.
stephan [Mon, 24 Feb 2025 07:06:36 +0000 (07:06 +0000)]
Configure-internal doc tweaks. Fix the distclean rules for libsqlite3.dll.a on msys/cygwin/mingw, broken when the DLL basename was changed for those platforms.
stephan [Mon, 24 Feb 2025 04:47:34 +0000 (04:47 +0000)]
Update jimsh0.c from upstream autosetup to address [https://github.com/msteveb/autosetup/issues/75|autosetup ticket #75], triggered by this build in the Gentoo project.
stephan [Sun, 23 Feb 2025 17:55:41 +0000 (17:55 +0000)]
Add (disabled) infrastructure for disabling use of the rpath linker flag. This is a proactive precautionary measure because how the rpath is used does not match up with what the unix-on-windows environments do with their DLLs.
drh [Sun, 23 Feb 2025 11:48:07 +0000 (11:48 +0000)]
The %#Q conversion now adds unistr('...') around the converted string if
escape characters were inserted. %#w now works just like %w as escape
sequences inside of identifiers are not recognized.
drh [Sun, 23 Feb 2025 00:09:24 +0000 (00:09 +0000)]
Enhance the %Q, %q, and %w printf conversions so that if the alternate-form
flag # is present, they transform backslash and control characters into
unistr()-style backslash escape codes.
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.
stephan [Sat, 22 Feb 2025 16:31:16 +0000 (16:31 +0000)]
On unix-on-windows platforms, if either of --out-implib or --dll-basename are not provided, auto-enable them. Add the 'none' special value to those flags to specifically disable the environment-specific handling of those flags.
stephan [Fri, 21 Feb 2025 23:43:10 +0000 (23:43 +0000)]
Rename configure-defined ENABLE_SHARED/STATIC makefile vars to ENABLE_LIB_... so that they're consistent between the canonical and autoconf builds (baby steps towards further configure code consolidation).
stephan [Fri, 21 Feb 2025 21:58:32 +0000 (21:58 +0000)]
Add --dll-basename flag to give clients control over the DLL's base name. Split the DLL installation makefile rules into digestible, platform-specific chunks. On Windows-side Unix-like environments, install the DLL into the bin dir. Requires testing and feedback from those platforms' package maintainers to confirm it follows the expectated conventions.
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].
stephan [Fri, 21 Feb 2025 20:28:44 +0000 (20:28 +0000)]
Extend --out-implib to optionally specify the import lib's name. Add as-yet-unused internals for specifying the DLL's base name (which differs across the Windows-side Unix-esque environments).
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].