drh
e432f2a316
For the purpose of the query planner heuristic added by [38db9b5c83], a query
...
should only count as a star query if the fact tables are connected to the
dimension table by an INNER JOIN. If a LEFT JOIN is used, then the fact
tables are constrained to be in inner loops anyhow and so the heuristic does
not make any sense. But it does interfere with AUTOMATIC index creation, which
causes the performance regression reported by
[forum:/forumpost/d87570a145599033|forum post d87570a1455].
FossilOrigin-Name: 0852c57ee2768224af79910e6f26e70a4962651dae0f8b45cbfc847e6707d7bb
2025-01-17 23:49:40 +00:00
drh
c5dd908c89
When two indexes have the same cost, use the narrower one (the one with the
...
smaller average on-disk row width).
FossilOrigin-Name: 398559678f2b9a65b245ed73b4d512c4fccc69d42b5a6a1c1b7755a80b69d073
2025-01-16 01:47:03 +00:00
drh
65d0312c96
Check-in [da9124fee28c155c] broken the new SQLITE_IOCAP_SUBPAGE_READ mechanism
...
for inhibiting direct-overflow-read. This check-in fixes the problem.
FossilOrigin-Name: 113078d555eaf740666680562ebbb04f7d823b72e8b2d553627e54ab3d7bf653
2025-01-15 21:13:38 +00:00
drh
d1047faad6
When choosing between two indexes with the same cost, pick the one with the
...
smaller predicted number of bytes per row.
FossilOrigin-Name: d4bd0d4214551f88f248698fefc821575b722ce5c194d0b3796f572e4704f641
2025-01-15 20:23:22 +00:00
drh
874b5e9fbb
Variable names and conditional logic simplified in where.c. These
...
changes are cosmetic only and do not affect the resuling machine code.
FossilOrigin-Name: dbc2d6a244fdafd208239894dbdd8f139db6ca20dd8f1ed00d87028e0cb60570
2025-01-15 19:30:10 +00:00
drh
f1747f93e0
Remove a stray tab character from a comment.
...
FossilOrigin-Name: 315079b150b47e013e2cde4985bc39d24e0f6f6c6e60f9383fb8ea4ea897c67a
2025-01-13 13:32:56 +00:00
drh
43afab28a0
GCC 13 has become more quite pedantic about the signature of functions matching the
...
type of pointers through which the functions are called. Make adjustments to
extension functions and test procedures to work around this. No changes to the
core.
FossilOrigin-Name: ed83b79100b4345235aec990303c4526874f0c2f8701160c4639a80633ebaf70
2025-01-13 11:28:34 +00:00
drh
14bc98d8e2
Fix harmless "implicit fall through" warnings that suddenly appeared when
...
I upgraded to gcc-13.
FossilOrigin-Name: 3e2875dac27de1525d9c78f38ac5f1fc12fec7e1b43dbdf47798b128fae49084
2025-01-11 16:28:41 +00:00
drh
4b5e8c926a
Better job at suppressing harmless scan-build warnings. This time testing
...
and working.
FossilOrigin-Name: c847973947de67579fab78a65ecfc90bf59fd5db0b7fa7a9c1abb1fc92213d01
2025-01-11 14:43:47 +00:00
drh
27661f24cd
Fix harmless scan-build warnings.
...
FossilOrigin-Name: b93af6feb7c0c3af30a47810a7c0e77ce41c386fac164c64bb5871a6c153db7e
2025-01-11 13:59:42 +00:00
drh
fd11e5c082
Improvements to [14b38ae6ab86a314] so that the Tcl interface is better able
...
to work with boolean values in both Tcl86 and Tcl90.
FossilOrigin-Name: 4e85343d6107a46682b549667410c296d7f4d17e3ac04ded7357afcbbfbe3e6d
2025-01-07 16:36:47 +00:00
drh
ece1729958
Fix a memory error in test logic introduced by [8704034254938662].
...
FossilOrigin-Name: 8a56e98d257e280d308b9fdc26e17e202f00a70fb9a780e30924e87a189fc7f4
2025-01-07 15:39:57 +00:00
drh
4717d573e4
Make the TCL extension aware of the booleanString type within TCL.
...
FossilOrigin-Name: 14b38ae6ab86a314a63ca9513850b43fcc670864f94d03a2706eff469980da88
2025-01-07 12:14:32 +00:00
drh
e53393250a
Fix a typo in the previous check-in.
...
FossilOrigin-Name: 7d41885e85b0e2ef28bac34d663af07c35b21ee3e8b14481d2371f623bce681d
2025-01-07 11:54:43 +00:00
drh
4a6896379f
Minor fixes to tclsqlite.c to promote portability.
...
FossilOrigin-Name: dd934f032fa6fc790a951006512e3ed76a5f2930858932918eafdbe3ceec4620
2025-01-07 00:17:54 +00:00
drh
a5dbae3781
Fix a minor problem with the sqlite3_get_table_printf() test interface.
...
No core changes.
FossilOrigin-Name: a0df29c7a3eb4f558aba00598d827643830591def3101a4d5464543527b8d13c
2025-01-06 18:32:53 +00:00
drh
1388a71690
Allow the 2nd argument to ".param set" to use previously bound parameters,
...
as suggested by [forum:/forumpost/823e1bd746|forum post 823e1bd746].
FossilOrigin-Name: 13a35ad792dc0afe1f7b60230aef392ae01e702972b963d732e332f21848f38b
2025-01-04 19:50:44 +00:00
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