Commit Graph

18968 Commits

Author SHA1 Message Date
drh ded37f337b Add comment to the columnIsGoodIndexCandidate() routine to record the results
of a failed experiment.  No changes to code.

FossilOrigin-Name: 9ee57a30a49d9813bf2669a5d8346f7e018e3fbf1792739951311a8d3a249d45
2025-01-03 11:51:50 +00:00
drh 04364cb3cc Improve the treeview output for CteUse objects.
FossilOrigin-Name: 2b16d6947ca4a102ddab4d5ba3e340a75e1e5c28e45e874ee5ff52f9b5fb964f
2025-01-02 21:23:25 +00:00
drh db258d8ff7 Improvements to the display of subqueries in the FROM clause for treeview
output.  (Debug and analysis code only - does not affect production builds.)

FossilOrigin-Name: 4a2d65cdcdd3d21bb7d9ea0efb434484f1b8642c2bb6457db58bc2a5f4fc16e5
2025-01-02 18:43:29 +00:00
dan 3835cf6ea1 Add a test case for ROLLBACK TO of database truncate operations made through the sqlite_dbpage vtab.
FossilOrigin-Name: eb335beb1eb9ebbea4cb793d24f65787d0d9d8539bc6b5971e4e4298fdfce0c2
2025-01-02 15:27:15 +00:00
drh a683b055fb Improvements to the way that truncation is implemented in sqlite_dbpage().
FossilOrigin-Name: ac4bb2e4ecf0bdb0d8ac12b1ccb42d51af02f519a038cfc79faab5c216971056
2025-01-02 15:03:13 +00:00
drh 71d6456f59 New assert() statements to show that the sqlite3_value.db field is initialized
for MemArrays.

FossilOrigin-Name: 7cd8ccf57d1ae0f597ec5004201395f61ef4750728f3c1b9c4dd52d28916a4f7
2024-12-30 13:54:52 +00:00
drh 6b19c72f26 Add an extra assert() to releaseMemArray() just to prove that the
sqlite3_value.db field is never NULL.

FossilOrigin-Name: b969ef1def5121c7ff54e3586528274f006ca994b308cf88ccaa9d4f56bf30df
2024-12-30 12:29:18 +00:00
drh e0190a6984 Fixes to the substr() SQL function so that it can handle ridiculously large
numbers in its 2nd and 3rd arguments without signed integer overflows.

FossilOrigin-Name: c1de8f916ea617109a903c436c57d082756fbb2b933ba9ce6998b9b912b12dea
2024-12-28 12:32:01 +00:00
drh ccfb50d55e Correction to check-in [a9759fc78d6cb0df] - printf() parameters values must
be integers.

FossilOrigin-Name: 2db531d1911369ea932d3559abcc02389e5f9ad72b46b0801dfb6063855aee1b
2024-12-19 19:52:13 +00:00
drh be2a40d489 The BTree mutex must be held when calling sqlite3BtreeLastPage(). This
check-in fixes a bug introduced by [cf8b99e17872c054].

FossilOrigin-Name: e6c30ee52c5cdc193804cec63374d558b45e4d67fc6bde58771ca78485ca0acf
2024-12-19 19:02:09 +00:00
drh 2dcd4fad6b Fix additional integer overflow problems in the substr() function.
FossilOrigin-Name: 472abb492f1d1553ae6bdf53cc64bebfe75423526335beab7eaff26cc495cd7d
2024-12-19 12:08:39 +00:00
drh b097ef29d1 Fix possible integer oveflow in the second and third argument to substr().
FossilOrigin-Name: b04b4006f38f83d36eaf43c4bace7d53866b02b45e0ddcf1704266fed3bfc11c
2024-12-18 20:29:29 +00:00
drh 47bc07d425 Avoid 32-bit roundoff error on the second argument to round().
[forum:/forumpost/170aeab92a|Forum post 170aeab92a].

FossilOrigin-Name: a9759fc78d6cb0df7c81f20c2c5c358729e571ebee50ee2b1441a15239d0b4b6
2024-12-18 18:29:19 +00:00
drh 2fb488d10a Do not attempt to truncate a database in sqlite_dbpage if the database is
not larger than the requested truncation size.

FossilOrigin-Name: cf8b99e17872c054e7ac0832d12633ce497c843dfc67148daf3b17762fd2b424
2024-12-17 14:32:37 +00:00
drh 32dd04b41e Code formatting changes to make trunk more like wal2.
FossilOrigin-Name: 8f725472b0fe62359a4cd3237b43d7b834e042d8ce425abde06e3ed6c62dbafa
2024-12-16 18:04:39 +00:00
drh bd1a5932d9 Changes for better alignment with the wal2 branch.
FossilOrigin-Name: 4fab85b3d0d1cad2d185f2456de7ddf281badf8561cc051e10e16655441dcc84
2024-12-16 13:25:49 +00:00
drh 276172e4a3 Remove unnecessary end-of-line whitespace.
FossilOrigin-Name: ae580443d210811c12209866112fc8b0b83281e24945504b748a17d93ad84062
2024-12-16 12:08:47 +00:00
drh 9ee02515c4 Fix a harmless compiler warning that comes up when using SQLITE_DEBUG in
separate compilation mode.

FossilOrigin-Name: 52e0f8cab9852538da0778d5f57dd85b0774e764157692111a007aecd963f10a
2024-12-13 01:29:22 +00:00
drh 35d302ccb1 Increase the maximum number of arguments on an SQL function to 1000 with the
capability to increase it further up to 32767 using a compile-time option.

FossilOrigin-Name: e8d7d68ba0bb0bc2f948db5d9966990a5d23597fc3658b7cd0bc99d53c7353a9
2024-12-12 15:11:27 +00:00
drh 6e53f67c63 Fix harmless typo in a comment describing the columnMallocFailure() function.
FossilOrigin-Name: 0f3b484fd71fd77947a1de7c24f35f8eed2911d0565d03edb7970b8f3092a5da
2024-12-10 12:32:34 +00:00
drh e57527c14f Make the TCL interface more rebust against very large strings coming
out of TCL9.

FossilOrigin-Name: e2bae4143afd07de1ae55a6d2606a3b541a5b94568aa41f6a96e5d1245471653
2024-12-09 20:46:36 +00:00
drh e85e33d39c Enhance the ".import" command of the CLI so that it is able to insert into a
view that has an instead-of trigger.
[forum:/info/3e03c73150f8b9f8|Forum post 3e03c73150f8b9f8].

FossilOrigin-Name: 7dcc3731a9057a91f1b173fbab2841d8a666a945d9bc61d4c20f8a2a279d5ff1
2024-12-09 20:37:18 +00:00
drh c29bc733be Add NEVER() around branches that seems to have been made obsolete by
[a350ea7c6b89725b].

FossilOrigin-Name: cb5bad5c748b7435c43f3ec051736c1cf91ced2be317b0519e5e22523c137290
2024-12-09 13:02:13 +00:00
drh 54f96dc50e Further improvements to the decimal-to-float conversion for values close
to LARGEST_UINT64.

FossilOrigin-Name: 453c949914770e8f7b9b9dd882db492bf8756c212c816f87bb2e3ed98bcd64e3
2024-12-09 11:47:28 +00:00
dan 94ad4abc65 Fix an obscure problem with multiple outer joins, ON clauses and query flattening. Forum [forum:5c8a069d23|thread 5c8a069d23].
FossilOrigin-Name: a350ea7c6b89725ba1a0058c77fc8e918f5cb78e868d100f5425cdee114d1320
2024-12-09 11:37:37 +00:00
dan 4f5ae3fc4e Fix an obscure problem with multiple outer joins, ON clauses and query flattening. Forum [forum:5c8a069d23|thread 5c8a069d23].
FossilOrigin-Name: 289daf6cee39625e8f068179cd58efcc1d28242f46064e58ec4175a019cf48ad
2024-12-09 11:12:12 +00:00
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