Commit Graph

18942 Commits

Author SHA1 Message Date
drh 9f53d0c817 Yet another iteration of the solution to the floating-point conversion
problem - this what avoids complaints about oversize double values
from -fsanitize.

FossilOrigin-Name: fc6904a508eb732b1cb5cc12321a0d637d97e1e066a022a2c93cb50595f3a86a
2024-12-07 19:57:30 +00:00
drh 8703642803 A cleaner and more robust solution to the floating-point conversion problem
originally fixed by [81342fa6dd03fffb].

FossilOrigin-Name: 351de57f80b73045448c71d3402d877ff5d72418b1f5fc34c8147a04f7c5cb78
2024-12-07 19:06:25 +00:00
drh 92d252e06d Fix more harmless compiler warnings.
FossilOrigin-Name: f5b8fd77635e5e6d2d88a1ce74e1bd6c4311260a2b695e5055b898b880bf5718
2024-12-07 17:08:13 +00:00
drh 4597870108 Fix harmless compiler warning caused by the previous check-in.
FossilOrigin-Name: 462700aeb7c183d739ead4d726ce5384b3297bcf7929abd010987fa3a5f64807
2024-12-07 16:53:42 +00:00
drh 1a4b2117f1 On x64 hardware, round-trip uint64_t→double→uint64_t conversions
fail for values greater than UINT64_MAX-2047.  This caused the SQLite
text-to-float converter routine to give incorrect results for values
between '1.8446744073709550592eNNN' and '1.8446744073709551609eNNN' for any
exponent NNN.  This problem was introduced by check-in [761d8fd18b0ee868]
and first appeared in version 3.47.0 and was reported by
[forum:/forumpost/569a7209179a7f5e|forum post 569a7209179a7f5e].  Fixed
by this check-in.

FossilOrigin-Name: 81342fa6dd03fffbe7d4d699ff049dcef4d30344578bb6f91cb58a4e5a4f6036
2024-12-07 14:48:55 +00:00
drh ef636cc3cd Add the SQLITE_PREPARE_DONT_LOG option for sqlite3_prepare_v3(), that prevents
errors in the compilation of the SQL from being sent to sqlite3_log().

FossilOrigin-Name: 870403425493866232cf9e8fa62288861b7d0a4091b15d75727f8bb31da46f94
2024-12-06 18:35:16 +00:00
drh 33c120f9b7 Improve the output from the ".testctrl opt" command in the CLI.
FossilOrigin-Name: de7064d118c33aab0fff39d072593b287c291870b843d093045300bde464420f
2024-12-02 19:55:39 +00:00
dan 4b491d8565 Ensure that the query flattener does not change an ON clause term to a WHERE clause term.
FossilOrigin-Name: bdd408a2557ff05c9ea962a94b442f7c078d8e1ec27035aa95bc23d4d2bd5606
2024-12-02 17:21:52 +00:00
drh c9ac238b92 Fix a comment typo on the sqlite3ExprIsSingleTableConstraint() routine.
FossilOrigin-Name: 346a845bf1cd1c7e542f7bf763d86c197d9a3b4f3ea38ade416790a1cf80e6f2
2024-12-02 16:24:47 +00:00
drh bfdeb1f6d5 Fix a harmless typo in debugging output.
FossilOrigin-Name: 578f76cfb2e298fe6bfd278b545091fe682d01feb0be56ef57b6c9f2c179ac61
2024-12-02 16:07:38 +00:00
drh 224e356081 Slighly less confusing output from treeview during debugging.
FossilOrigin-Name: 7aef0b93050cdb79cae68361e84047cea2e8e7251d0581ce917da03352bb1f16
2024-12-02 13:29:29 +00:00
drh c5b9da34f2 In sqlite_dbpage, cancel any pending truncate operation if there an error
occurs later in the transaction.

FossilOrigin-Name: 1abab10f85a4dba5ffe51a30eeef30853c120e5566ed97b3af1526fff597c647
2024-11-30 14:13:35 +00:00
drh 03e306b3a1 A NEVER() that was added by [eb5ac9e5b9a4f9c8] is violated by the ifnull()
in-line function.  This check-in fixes that problem.

FossilOrigin-Name: 2220ccf4d6fea2413015c72fd318003b4b5afeae7cb7586b714fce36212d8c49
2024-11-30 12:00:38 +00:00
drh 5c208f36a4 Fix a NEVER() in the iif() logic that can be true if compiled with
SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS.  Problem introduced by [eb5ac9e5b9a4f9c8].

FossilOrigin-Name: 3ec2df5a6c731b59b0ab132ee59c74d107f9c4bd32cf47d9776887858b9c0dea
2024-11-29 11:49:05 +00:00
drh dc7b94e63f Simplification to the fix in the prior check-in.
FossilOrigin-Name: f79cb748c9447ca4d2184a24219feb19571eb79870e0bedf14704743a3d5f8b9
2024-11-28 02:09:27 +00:00
drh 3ff6aa6e39 The sqlite3ExprCompare() routine should always compare the same variables
as equal to one another, regardless of whether or not QPSG is set.

FossilOrigin-Name: df95d5209a77c0302e08ea7b1f248646fb2a062ba5beca898678aee0a1d03a3a
2024-11-28 01:47:44 +00:00
drh bfb7f77a8c Add two NEVER() conditions.
FossilOrigin-Name: 4f358ad20dc8a45e7aaa1a1996b40abd39caf34be6556ed54e1e0c80572b7ac0
2024-11-28 00:58:37 +00:00
drh 60ad526639 Enhancements to sqlite3ExprImpliesExpr() so that it realizes that
"iif(A,B)" implies "A".

FossilOrigin-Name: d96ecbee59b50eca25447456dfff2c168e8eade7a68e542932d5829f97debb31
2024-11-28 00:34:20 +00:00
drh f12e5d1a0f Provide a two-argument version of the iif() function, plus an alternative
spelling that only requires a single "i".

FossilOrigin-Name: a251ee645e11e24b67473d8a5bd3f8b72fde1ac9d5fda074f5da2297deb2faa8
2024-11-26 20:56:03 +00:00
drh 8ff67df7ac Fix another issue in argument expansion on Windows for tclsqlite3.c in
interpreter mode.  Problem introduced by check-in [9b87ea219bce5689] and
unfixed by [cd942dce148c9d8f].

FossilOrigin-Name: 0fe1622cec95b7ebecc127ee57a08113d3da1dadbe72c03a13d6751b3043e50f
2024-11-22 17:41:00 +00:00
drh ed271dc7ea Fix harmless scanbuild warnings caused by the introduction of the
".dbtotxt" command into the CLI by check-in [b43acf5a8cd4a5ef].

FossilOrigin-Name: 554d8fbd865436ace900859874b6c8c7e1b782184158a86b7788644e27bd1997
2024-11-22 12:29:35 +00:00
drh 38fdb2a857 Fix some harmless scanbuild warnings in the shell.
FossilOrigin-Name: 9ba1c9b505d459366274043c1c5327f1a9d4e15d3564d99f8a15926af1d6d247
2024-11-22 12:07:21 +00:00
drh f0a9af433a Fix harmless compiler warning caused by [c77a4a42f2e3d164].
FossilOrigin-Name: 063690d2c5cc2a887055b9141d3fcdb4fd2fa35d069c9a39b81903c531c73fcf
2024-11-22 12:00:31 +00:00
drh 9edb535bdd Make ".scanstatus" an undocumented alternative name for ".scanstats" in the CLI.
FossilOrigin-Name: f20688efc2bc54648618b0aa2593a771f455ee8cc703b52273452d15e680b67c
2024-11-21 20:57:11 +00:00
drh 9bf5bea607 Document that -nofollow does not work on Windows. Fix Windows symlink
test cases for when the test suite is run as administrator.

FossilOrigin-Name: 4de8a75ec5a2e3655a2d0c5a9333b58f8b48b681255f0a01866b610ae6249bc2
2024-11-21 01:50:01 +00:00
drh 2722e2e822 Bug fix in the SubrtnSig logic from [c9a3498113074bbc], if a subquery is
copied and then changes are made to the copy, be sure to give the copy
a unique Select.selId value so that the original will not be substituted
in place of the modified copy.
[forum:/forumpost/0b9ded2f8428ac00|Forum post 0b9ded2f8428ac00].

FossilOrigin-Name: 19d1bede5654bcfa9f7a151b9b2616a3d10873b8e3f8cf54a3a7e810da08f844
2024-11-20 14:59:32 +00:00
drh d4a65cfc51 Provide the sqlite3ShowWhereTerm() interface callable interactively from
a debugger, when compiling with SQLITE_DEBUG.

FossilOrigin-Name: c77a4a42f2e3d16427a69295436efe36335e56e97abd0efba814092498a8dea8
2024-11-20 14:19:44 +00:00
drh 9566982328 Do not report an sqlite3_error_offset() for errors that occur inside of
views or triggers, since the text of those elements is not part of the
original query.

FossilOrigin-Name: bf66c6dfc25c2562a4e6a5b24dd1660213a8fefbb5763e7583b87fb06dbaaf43
2024-11-20 11:34:16 +00:00
drh 12599d566b Attempt to reduce divergence with the wal2 branch.
FossilOrigin-Name: e0d8f9916c2d899094b71af74f44e089a97db6d80f09eb80a5d8be733c1bf942
2024-11-18 17:05:45 +00:00
drh 5cad859f61 Attempt to reduce divergence with begin-concurrent.
FossilOrigin-Name: f783d90187fb326faa3d0244b30138b023c4a8483486f260b7a022a927c13f3a
2024-11-18 16:44:26 +00:00
drh bbc6e5c9b7 Make the --vfstrace output from the CLI go to the same output channel as
everything else.

FossilOrigin-Name: f71d4900205ae6ee41f849c4026d0fe4d6cf281dfc3bac8105fc8e242d128b67
2024-11-17 11:42:43 +00:00
drh 70d390134c Call fflush() on ".echo" output from the shell, so that the output to
stdout is aligned with output to stderr.

FossilOrigin-Name: c38b9db3c4f71706a7d211424da64311e6e5daf64b224565a6d82d4b1a68e261
2024-11-16 18:54:46 +00:00
drh 18689b8fb2 Fix argument expansion in sqlite-tclsh on Windows such that if an argument
does not match a filename even after glob expansion, it is appended to the
argument list verbatim.

FossilOrigin-Name: cd942dce148c9d8f5a94cee61923aad8d1b732b807e004005f78323be30c02e7
2024-11-16 17:39:34 +00:00
drh ea13658566 Remove some obsolete macros from the CLI.
FossilOrigin-Name: 5c4eb625709eda24b11a0437b150a60fc1497c136a4a2ab2b9d559d893dd397a
2024-11-14 15:55:19 +00:00
dan c87d7bede0 Fix a problem with window functions min() and max() when used with a FILTER clause. Forum post [forum:/forumpost/e9126d554a | e9126d554a].
FossilOrigin-Name: d15fb0f75e64bbfdb8df0c0d0358aafbbd7d5e2048df676dafe1abd5e9917f2a
2024-11-14 14:38:16 +00:00
drh 26c080a04b Fix a memory leak in the ".dump" command of the CLI that can occur if an
error other than database corruption is seen while trying to query the
database.

FossilOrigin-Name: 2560cc7072c923f534a5de1e15d2b0dd4ac5faf0a8876d9e3bf9804345585444
2024-11-13 18:04:49 +00:00
drh 1b37bc0e66 Add the SQLITE_FCNTL_NULL_IO file-control.
FossilOrigin-Name: f0e917fcf51b59f8ccfe5b9341937341d0e6016eb275d6c33dcb10b0b301a9da
2024-11-13 14:58:35 +00:00
drh 7b32f84ebf Clarify the documentation to make it clear that rows inserted by a
CREATE TABLE AS SELECT statement are not counted by sqlite3_count64().
[forum:/forumpost/1e6cde5648|Forum post 1e6cde5648].

FossilOrigin-Name: 5c5982e3937acdcda43d6c5b46a95b82bc1839c3558a4b9ae9022384e0f13f04
2024-11-11 21:11:02 +00:00
drh be46f935dc Add the ".dbtotxt" command to the CLI.
FossilOrigin-Name: b43acf5a8cd4a5efbb90b71af7710084f49bb90ffe4f56de168e8c3a6b679124
2024-11-11 19:07:58 +00:00
drh 4ddeccfc15 Increase the minimum SQLITE_LENGTH_LIMIT from 1 to 30 to avoid problems doing
simple things like converting strings into integers.  See also
[8fd5b8ec4ab9b555].

FossilOrigin-Name: 6aa01707af4bd96f0f173f9e87f2398be7e6f246f59baa117092849a626b2d61
2024-11-08 20:57:45 +00:00
drh c00d89d599 Further improvements to the ".mode json" output in the CLI.
FossilOrigin-Name: 6201b5707f8c895028f9c08cb4f83d33a16a91bf04ed3830ac51aa763d6b7205
2024-11-07 12:03:53 +00:00
drh edf7efc61c Improve the ".mode json" output of the CLI so that it encodes U+007f using
an escape sequence.

FossilOrigin-Name: 8b58cf9bbd3090c60f1ee7468cdeeb0b0fa4560d1e51a5fd0bef43692d10fe04
2024-11-05 23:26:31 +00:00
stephan 710d00aa6f Change a (#define HAVE_FCHMOD) to (#define HAVE_FCHMOD 1) per user request in [forum:24cf6020c6|forum post 24cf6020c6]. There's no semantic change for this tree, but this is consistent with how auto-config tools would define it and the empty #define interferes with some downstream code.
FossilOrigin-Name: 9c46d84f3bf2f5876211b498104067d32a4000979fad1345deb1000c23716d75
2024-11-05 02:38:32 +00:00
drh c6a6f1507c Fix harmless compiler warnings.
FossilOrigin-Name: bc93e17924f732468282c5e7a483811d27af573a47aec8ba806f4fe3c5919893
2024-11-04 19:18:19 +00:00
drh bc60d7bee9 Ensure that the database encoding is detected before the code generator gets
too far down into byte-code generation and execution, but not so early that
it interferes with initialization.
[forum:/forumpost/bc75a4d20b756044|Forum thread bc75a4d20b756044].

FossilOrigin-Name: af7173a10ec6a4ab465207c1ee20393e8b5f06604c0f3b2fdc19e52c2fc013d5
2024-11-04 19:08:53 +00:00
dan 4bf24c8830 Avoid loading the entire record into memory for an sqlite3_preupdate_old() call that retrieves an IPK value.
FossilOrigin-Name: 7f4de43733200beeb3ff0a70d51bbc68f5331895698ea95a82741cfd7bb66834
2024-11-04 16:59:02 +00:00
drh d27f6d7881 Extra defenses against UAF when failing to allocate a transient cursor. No
known path to a UAF currently exists.  This change just helps with the static
analysis to prove it.

FossilOrigin-Name: bae05811116dae0d05bcc001655416d0316ca1c16cbde2bd49f691c832261b89
2024-10-31 17:23:40 +00:00
drh 9bcb0a510f Fix the CLI so that it can use either the canonical Antirez linenoise
(with HAVE_LINENOISE=1) or Steve Bennett's enhanced linenoise that works
on the Win32 console as well as on Unix (with HAVE_LINENOISE=2).  The
./configure script detects which one to use and sets HAVE_LINENOISE accordingly.

FossilOrigin-Name: c0048e4482e9cb9662637899922af9609e7c8fb002a37b71e6181074df7a0dd1
2024-10-30 14:03:56 +00:00
drh 8b3ba8eb5a Enclose the generated "sqlite3.c" and "sqlite3.h" in a single big #ifdef so
that if they get truncated by more than a little whitespace, they will not
compile and the truncation can be easily detected.

FossilOrigin-Name: c3b624e2a903f0c975bc8b7288b98616a4a22b2a574738d1f578bfad1d6d8b91
2024-10-28 22:35:32 +00:00
drh bc4df6079c Remove the never-used and never-documented and long-ago deprecated
user-authentication feature option.

FossilOrigin-Name: 3a3f7bf4307c27e56546e51da06ecc9a262cdf155fda2dd359aa2326d207a147
2024-10-28 17:27:15 +00:00