1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-09-13 21:02:00 +03:00

29607 Commits

Author SHA1 Message Date
drh
d4c686ed8f Small performance improvement for the new %#Q conversion in printf.
FossilOrigin-Name: 17e440781e68d7d3ea68c5144e1e08e183f0caef595a6c7ac4ce56489c60f476
2025-02-25 12:18:27 +00:00
drh
a357a90f12 Consolidate two different UTF8 encoders into a single subroutine.
FossilOrigin-Name: 6208e494858b9d362efc7db4e8aac6f8e93fe51d2e038c94dfa97c55a74688a0
2025-02-25 11:47:34 +00:00
drh
c46fbec350 Fix the new shellA.test test script so that it works with Valgrind.
FossilOrigin-Name: c3949852cee320c2e02123b99c33155c459b10b2ac8e4fe80b1b7624c9ce0817
2025-02-24 23:34:50 +00:00
drh
81d44c7e3e Use an assert() to fix a harmless (false-positive) scan-build warning
in the CLI.

FossilOrigin-Name: 4c56cd7392f114e27b43d8fcc79444c3078cd65285ba7dd3338a414e2a9f5392
2025-02-24 20:13:29 +00:00
drh
e4f7af1908 Only use unistr() in columnar formats when strictly needed.
Do not use unistr() in insert mode when --escape is off.
More test cases.

FossilOrigin-Name: e029828de91b10b4c7f4a19bc70c35e4f36fae4ebf32b40553a6ba9f2b3af295
2025-02-24 17:50:49 +00:00
drh
b6205d4bc3 Add the unistr_quote() function that works like quote(), but also escape
control characters using unistr() if necessary.

FossilOrigin-Name: e99e37b54baf7283588ead4983e613a1e14c58a0b92be5f7b25b4d9d287b5324
2025-02-24 13:51:24 +00:00
drh
7db5e50b8d Bug fix and initial test-case infrastructure for control-character escaping
in the CLI.

FossilOrigin-Name: c809997792602a7299b8ab84d018a03d291695e308ce750fc8b9d7a824edfd6e
2025-02-24 13:27:16 +00:00
drh
21b431e685 Ongoing work to get all the quoting and escaping variations in the CLI
working correctly.

FossilOrigin-Name: b77aea93e7eff0af408f598727caedcfc4428361b8440fbc1cc54c18f93abb69
2025-02-24 12:41:30 +00:00
drh
6a9c3b407e Make column output modes in the CLI responsive to the --escape setting.
FossilOrigin-Name: 14ff5557d450475ad959f8c753c0cecb85dfca7346fcacd91da16e4d36e30508
2025-02-24 00:40:36 +00:00
drh
96a65cc474 Three different --escape modes: symbol, ascii, off.
FossilOrigin-Name: b5adb52fc0dc1838cb9c66cff422f2b8ec147e546cf909dd3c48731fa1edfe50
2025-02-24 00:18:12 +00:00
drh
9ba963f035 Further improvements to control-character escapes in the CLI.
FossilOrigin-Name: 9c2f974c17e3dfac78f3808fdfe916f7617cfdaa64430af38eae21bd6592e6f5
2025-02-23 20:50:37 +00:00
drh
8d15d7ed68 Work toward VT100-safe output from the CLI by default.
FossilOrigin-Name: 44c44620e8648a4265053f194e32b3a5c65d25b4f1fff61ef9b944e7cb0ed624
2025-02-23 20:20:56 +00:00
drh
a3283ec135 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.

FossilOrigin-Name: 997391d42079783e294836f714ccd9526ecc442c8dbf8212d72cd17c67e7158a
2025-02-23 11:48:07 +00:00
drh
07ce1820a0 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.

FossilOrigin-Name: ffbfcc2bbb57f02aa5ee813e7a25a2a014e3353a10f6bccb609075a5b63545d7
2025-02-23 00:09:24 +00:00
drh
4d70dbad57 Prototype implementation of the unistr() SQL function.
FossilOrigin-Name: 7cc302de05ed2a973372c05f55b048bf99af3d2590dd29f6fd0f379fb451aa0e
2025-02-22 23:18:38 +00:00
drh
c071c47b51 Tamp down various harmless compiler warnings. Use "int" in places instead
of "u16" or "i16" since the compiler complains less and generates faster
code.

FossilOrigin-Name: 742827f049768c4f69ccdfaadfad339aaad3bc126d3a68b90cfea01d825bf7ce
2025-02-22 16:44:14 +00:00
drh
447f1c2312 Fix an incorrect assert added by [d7729dbbf231d57c].
FossilOrigin-Name: eeea11278bdebe336f0c30fbad79e30e3456ab67dae46abdd5f9951ea1b61bed
2025-02-22 11:40:29 +00:00
drh
cc803b209f 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].

FossilOrigin-Name: 5822feec43be9352fd87bf9968c39c0218e01ab5fe3ba50431ae21cba79e6c89
2025-02-21 20:35:37 +00:00
stephan
d9959bf48b Makefile-internal var renaming in prep for pending portability-related changes in the handling of DLLs. No functional/build interface changes.
FossilOrigin-Name: ebf41fc90aa9fb1bb96239145c0cdd06eced391499975c71734610996d088641
2025-02-21 20:22:56 +00:00
drh
ce25007db8 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.

FossilOrigin-Name: d7729dbbf231d57cbcaaa5004d0a9c4957f112dd6520052995b232aa521c0ca3
2025-02-21 17:03:22 +00:00
stephan
220260b896 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.
FossilOrigin-Name: 4e81e2c707a954dcda6219dc94e2b96dd0c9907bd4beab28adad51d488b7d739
2025-02-21 03:19:21 +00:00
stephan
a80089c516 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].
FossilOrigin-Name: a15e0f6802a5ba7bc5a7a70d6a162ea4548b49b132a5ac31263e64c388bbafcb
2025-02-20 17:14:40 +00:00
stephan
2a300a2853 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.
FossilOrigin-Name: 56027220cc15b69cb98ba5360ffd3718c997e10d51e30eebeff14f0dc358d103
2025-02-20 16:45:45 +00:00
stephan
9e632f5512 wasm: do not build the (untested/unsupported) node-for-node build by default, to cut build time by about 15%. Adjacent cleanups in mkwasmbuilds.c.
FossilOrigin-Name: e4539ebebd89840b76f5a0626393299100685a38f45546a0bf7a62e4df56f863
2025-02-20 05:39:18 +00:00
stephan
b42310a6b9 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.
FossilOrigin-Name: e1f184889fef4603d61d306c8c0dc86df616290ccf73dbd871fa27bd99e5e5c9
2025-02-20 04:45:02 +00:00
stephan
a32ea731a0 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.
FossilOrigin-Name: b5dbd521951e129b4dec69f191a872500dbf387b34a8479ad58b053ffcccbab9
2025-02-20 04:14:26 +00:00
stephan
f8a9f45595 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.
FossilOrigin-Name: 4ae9d6c642295e3a0c1732dacf7c18ecacd39d3e74e38381ac5531c8396f5f1c
2025-02-20 03:27:47 +00:00
stephan
eb0d2e7bc6 Increase default CLI shell .prompt buffer length to 128 bytes, based on discussion in [forum:362f185a6aa|forum post 362f185a6aa].
FossilOrigin-Name: 628407f03d4bfb7499f0e6e2197089edf859380a3c4e6fecc517390327718141
2025-02-19 13:05:33 +00:00
stephan
2e132a4c04 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].
FossilOrigin-Name: 82fc67070f9aff0065c07cbeed40f4321e03617bdc3e517adc58a2d96e6e3e49
2025-02-19 13:02:23 +00:00
dan
eb3a069fc8 Have SQLITE_FTS5_ENABLE_TEST_MI builds avoid reading the database schema from
within sqlite3_open().

FossilOrigin-Name: 15dc524fd4113026cc542140c39c1c8f9e052d36946f0c599f282d9ac27efdab
2025-02-18 15:11:30 +00:00
stephan
9ef8399055 Update path on the web server for test/snapshot instances of fiddle.
FossilOrigin-Name: 57caa3136d1bfca06e4f2285734a4977b8d3fa1f75bf87453b975867e9de38fc
2025-02-18 01:16:26 +00:00
drh
21212923f2 Add an ORDER BY to a test case for skip-scan to make the output consistent.
FossilOrigin-Name: 9c9c19414ac243ce48a34bf13a08bff54a465e54a0c09ded50508b8d4bdba227
2025-02-17 20:13:20 +00:00
dan
c274e6dda4 Fix problems in test script fkey6.test.
FossilOrigin-Name: 088e476519c2c759ba9387cb18eaad7c042cc37e45e96237d3125ba33ee3633a
2025-02-17 19:44:45 +00:00
drh
7bfa4452a3 Additional changes making it easier to prove that integer overflow does not
occur.  No problems found.

FossilOrigin-Name: e846743a875430a5c51d41f00ac9532214f97d9925e6261113b63580f92369fc
2025-02-17 18:09:24 +00:00
drh
ef86b942b9 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.

FossilOrigin-Name: 215650a5a1d55bdbca9c92524804a1a54456a17f42a17e53747b21a6507506f5
2025-02-17 17:33:14 +00:00
stephan
ad5dcff53b Add two generated files to the distclean rules of the autoconf bundle.
FossilOrigin-Name: b59d0ebb22e4ca2f3a7a73dd49a0c142dbca538cb1b4eafd35a78bac87c6c456
2025-02-17 16:14:15 +00:00
stephan
f6757b305a 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.
FossilOrigin-Name: edb8a78c0238f085eefbf86aa7777528f36f3400d4ef096ffd6855cf3321a97b
2025-02-17 16:04:21 +00:00
drh
56d2fd008b 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.

FossilOrigin-Name: 1ec4c308c76c69fba031184254fc3340f07607cfbf8342b13713ab445563d377
2025-02-17 14:16:49 +00:00
drh
59c64e086a Fix a typo (a missing ")") in a comment that is used to generate
documentation.  No changes to code.

FossilOrigin-Name: ea21685658df8246551650666ff59945ac27271b10a675104cbadaf57d48595f
2025-02-17 10:58:23 +00:00
stephan
3cc3898e13 Internal reordering/re-grouping of some configure flags. No functional changes.
FossilOrigin-Name: 0c085a5ab51d6ac793a147a865bd086b1a6a572932c251b38d3854e4ea802f8d
2025-02-16 19:16:09 +00:00
stephan
c2d56ea4ea 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].
FossilOrigin-Name: 47e817f663468ce08dae4965b7ecacefb921a77398ec958b35bf5cedee767e24
2025-02-16 18:14:05 +00:00
stephan
4b1c8362e7 Update autoconf/Makefile.msc from tool/mkmsvcmin.tcl.
FossilOrigin-Name: 9ffe94d2ea0b3679c3d2657e2c3b67f84c09e9bcbbe0a13c76d58858df367d1b
2025-02-16 13:49:18 +00:00
stephan
18780193d5 API naming typo reported in [forum:416f2d8dec|forum post 416f2d8dec]. No functional changes.
FossilOrigin-Name: 0cfb9e234e116741d01b65d0abf18210e495276319fb08ec6e40d3f2e698956d
2025-02-16 13:13:19 +00:00
drh
f4fc2ee203 Add a typecast to avoid 32-bit integer overflow in the concat_ws()
function with an enormous separator values and many arguments.

FossilOrigin-Name: 498e3f1cf57f164fbd8380e92bf91b9f26d6aa05d092fcd135d754abf1e5b1b5
2025-02-16 10:57:25 +00:00
stephan
ac729894be Remove tea version check from tool/srctree-check.tcl, as it's obsoleted by [be265559].
FossilOrigin-Name: 1860ea060bd373f49d0b5d41367409a4607e9a0a0cb606af99927af15de1e21e
2025-02-15 17:29:56 +00:00
stephan
4a1c44eea7 Automate update of the library version number in autoconf/tea/configure.ac as part of the tool/mkautoconfamal.sh process, per /chat discussion.
FossilOrigin-Name: be265559a334eda127862ae54edb58c46051f74445642daa84a9f61a81df1bac
2025-02-15 16:24:05 +00:00
stephan
984f699ccb 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].
FossilOrigin-Name: d743410665df8ba962db6e1f245d929b005d0add77be95af3c3c7f87a1c758fb
2025-02-15 16:12:28 +00:00
stephan
4e87ddc105 A cleaner workaround for [6a21d6a2], provided by autosetup's creator.
FossilOrigin-Name: 334ed723d0fc0b202f79a9746459181f637ca99c54864a4aa11629eecb4b8d0c
2025-02-15 14:12:24 +00:00
stephan
6b5599726b More informative output for the pthread feature test.
FossilOrigin-Name: 01b9ed73ca6e72411dcf5a81f445c15c5bc42fa068fc7eca485ac72635b9d2fc
2025-02-14 18:17:31 +00:00
stephan
d04782206b Make failure to find pthreads support non-fatal unless --enable-threadsafe is specifically passed in. Build regression reported in [8e0fdb8c0d].
FossilOrigin-Name: 806ad1ac173d7c0d6d94bfccd3b961fc5c9541b32773c063a8c4082380d7a90d
2025-02-14 18:06:28 +00:00