]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Tue, 25 Jul 2023 13:53:42 +0000 (13:53 +0000)]
dan [Mon, 24 Jul 2023 19:13:06 +0000 (19:13 +0000)]
Add the fts5 'delete-automerge' integer option. A level is eligible for auto-merging if it has a greater than or equal percentage of its entries deleted by tombstones than the 'delete-automerge' option. Default value is 10.
FossilOrigin-Name:
b314be66b9ac0190b5373b3b6baec012382bc588c2d86c2edab796669a4303c3
dan [Sat, 22 Jul 2023 19:47:46 +0000 (19:47 +0000)]
Integrate contentless delete with auto-merge.
FossilOrigin-Name:
85c1589ab1fc69d1eef4bbc1bdefa2b10af5f6b9c08e813130b93829b592f416
dan [Fri, 21 Jul 2023 21:10:33 +0000 (21:10 +0000)]
Fix fts5 incremental optimization so that it too can handle an index that consists of a single segment with one or more tombstone hash pages.
FossilOrigin-Name:
e61c9b083f5e0b6b6ee18f9394581ad816f445dbfb72ed1fe954f4182755a576
dan [Fri, 21 Jul 2023 19:33:35 +0000 (19:33 +0000)]
Ensure the fts5 'optimize' command correctly rewrites any index that consists of a single segment and one or more tombstone hash pages.
FossilOrigin-Name:
f4926006b371d9a1439a25384bd50a50c2f1c03f75a7c2c3134ae72abb971c91
dan [Thu, 20 Jul 2023 20:29:56 +0000 (20:29 +0000)]
Fix some divide-by-zero errors that could occur when handling corrupt tombstone hash records.
FossilOrigin-Name:
7567ca0676f0d45026f5cd4f3fbcd09119c2eaab8ec1711499609c16c452b5e4
dan [Thu, 20 Jul 2023 20:09:26 +0000 (20:09 +0000)]
Avoid an infinite loop that could be entered when dealing with corrupt fts5 tombstone hash pages.
FossilOrigin-Name:
69ce2ce035279f2a00c2238187cf4d2a9092c3410f5900e4613fe4e46311169e
dan [Thu, 20 Jul 2023 16:07:04 +0000 (16:07 +0000)]
Add tests and fixes for the new code on this branch.
FossilOrigin-Name:
5aac50e92e956b15367c75c20c17bc1c75e84e2752bfffe4ad0a266cb9bd3b8a
dan [Wed, 19 Jul 2023 18:47:02 +0000 (18:47 +0000)]
Fix various issues with code added to this branch.
FossilOrigin-Name:
8d09011fa2c6ae9cc88e1766f9aad4578efbf9e0e311b8c6efdffe7a3f88f923
dan [Tue, 18 Jul 2023 19:52:32 +0000 (19:52 +0000)]
Fix various problems with fts5 contentless_delete=1 tables.
FossilOrigin-Name:
0d005112b8aca9e9eca9d86d5fed9168f6a0218fd290b5489b9e7b05714610f4
drh [Tue, 18 Jul 2023 17:43:47 +0000 (17:43 +0000)]
dan [Tue, 18 Jul 2023 16:29:34 +0000 (16:29 +0000)]
dan [Tue, 18 Jul 2023 13:55:55 +0000 (13:55 +0000)]
dan [Tue, 18 Jul 2023 13:55:19 +0000 (13:55 +0000)]
Fix a buffer overrun in fts5 that could occur in 'secure-delete' mode when dealing with corrupt database records.
FossilOrigin-Name:
def41225b2f10b0294ab506f28bc87873688d4030f7056839298ff18e058ece5
dan [Mon, 17 Jul 2023 18:40:39 +0000 (18:40 +0000)]
Fix cases where a row is inserted into a contentless_delete=1 fts5 table and then deleted within the same transaction.
FossilOrigin-Name:
d928856a226fb7f001e55ff7e8eb58a656b982f1efa811de46c382b8b7cd778c
dan [Mon, 17 Jul 2023 17:59:58 +0000 (17:59 +0000)]
Do not allow the 'delete' command to be used on contentless_delete=1 fts5 tables.
FossilOrigin-Name:
cc694b83408ccb5d42204cb624145c76e95329cbe1d1fe8815c70a7a00af231a
dan [Mon, 17 Jul 2023 11:47:42 +0000 (11:47 +0000)]
dan [Sat, 15 Jul 2023 18:57:57 +0000 (18:57 +0000)]
Store large tombstone hash tables in multiple database records. Ensure the same hash tables handle rowid 0.
FossilOrigin-Name:
4410e60d0c76e057ee962124f9239c6e17fd5ccafdbb4d9b703448eabd7781e3
stephan [Fri, 14 Jul 2023 21:06:00 +0000 (21:06 +0000)]
stephan [Fri, 14 Jul 2023 12:21:05 +0000 (12:21 +0000)]
stephan [Thu, 13 Jul 2023 18:35:48 +0000 (18:35 +0000)]
Reintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build.
FossilOrigin-Name:
7e4c594e9591101f6b727212c99f561498444e86d3d059e5864a717c614f903a
stephan [Thu, 13 Jul 2023 18:13:52 +0000 (18:13 +0000)]
Minor cleanups related to reintroducing wasmfs support.
FossilOrigin-Name:
6918a927b5ecd1df5916b70d52d8d5ce289869c3f323e577b7dfc7c939084400
stephan [Thu, 13 Jul 2023 17:27:05 +0000 (17:27 +0000)]
More work on the wasmfs build and its test apps.
FossilOrigin-Name:
953b8557194e9451dcf9f3bb433eafb67961487325e6519e675e73fecf850bfb
stephan [Thu, 13 Jul 2023 16:33:45 +0000 (16:33 +0000)]
Get speedtest1 wasmfs variant running again.
FossilOrigin-Name:
0f77e031daf0121f7603409cedf57f138edbb43083cbbcf00d2a423e16de25a7
drh [Thu, 13 Jul 2023 14:49:39 +0000 (14:49 +0000)]
Fix an off-by-one error in tests for cells overflowing the end pages. The
error is completely harmless for the default page cache, but might cause
problems for application-defined page caches that pack pages tightly
together.
FossilOrigin-Name:
ce6793e954f291b6f5c29175baf730ce217328de1f0601b8935daac62af5f448
stephan [Thu, 13 Jul 2023 14:08:30 +0000 (14:08 +0000)]
Significant surgery on the wasm build on the way to incorporating wasmfs as a first-class build option.
FossilOrigin-Name:
215c37fce38cf647e073480689b79d952af7eb8165ae08c7f5caed27003fecfc
stephan [Thu, 13 Jul 2023 10:41:41 +0000 (10:41 +0000)]
More work on the wasmfs build. Resolve the inconsistent argument type passed to sqlite3InitModule() in such builds.
FossilOrigin-Name:
4850a9e2d2b41b91e91b9ef99a6d26ddf11a161b4c970fc00d2d095606729a04
stephan [Thu, 13 Jul 2023 04:54:18 +0000 (04:54 +0000)]
stephan [Thu, 13 Jul 2023 04:26:13 +0000 (04:26 +0000)]
Get wasmfs build and its bare-bones test app working again, albeit currently in ES6 mode only.
FossilOrigin-Name:
647761ed422f196f94facc88bbddd7219a2c1a6301a5f847b0a32d3e405233a7
stephan [Thu, 13 Jul 2023 03:46:43 +0000 (03:46 +0000)]
Replace 'self' with 'globalThis' in some JS test code.
FossilOrigin-Name:
53eeffc9b1ea8c3ee7d7cdcc220997ed893403e45b35d8ea10805ea3b0435587
stephan [Thu, 13 Jul 2023 01:51:16 +0000 (01:51 +0000)]
JS: change the default OPFS VFS journal mode from PERSIST to DELETE, as DELETE is faster in current browsers.
FossilOrigin-Name:
a061a43e36b8f3cb7c465fd2e54cfcd9dceb07e232ee78602bbdd1818acd05ea
stephan [Thu, 13 Jul 2023 01:48:53 +0000 (01:48 +0000)]
Remove obsolete ext/wasm/api/sqlite3-wasi.h.
FossilOrigin-Name:
f661a6e0c1ac081ee402e64590eabd427440db1b717be9166bdfc025d0b0d899
dan [Wed, 12 Jul 2023 20:24:23 +0000 (20:24 +0000)]
Avoid a case of an infinite loop in fts5 when dealing with corrupt records.
FossilOrigin-Name:
0e801f11cd2d50fc710a80c2b3b805c7801e660cff1bcc87be89133d43796524
dan [Wed, 12 Jul 2023 19:34:32 +0000 (19:34 +0000)]
Fix a crash that may occur when handling corrupt records in contentless_delete=1 mode.
FossilOrigin-Name:
74d7610a8e32ac62a608141ff16bfe517c8d2cdfd43f81ef3a5df2b2003e541a
drh [Wed, 12 Jul 2023 18:38:47 +0000 (18:38 +0000)]
Get access to SQL functions and virtual tables used for debugging and analysis
of FTS5 using SQLITE_FTS5_DEBUG and without the need for SQLITE_TEST.
FossilOrigin-Name:
383de8e2259adb3f8881a618b8b5e06c1f3b2bd7ac274bd047410ad7d2a18f0f
stephan [Wed, 12 Jul 2023 09:30:13 +0000 (09:30 +0000)]
stephan [Wed, 12 Jul 2023 09:16:18 +0000 (09:16 +0000)]
Correct handling of the speedtest1 --without-rowid flag in the HTML front-end to speedtest1.wasm. Reduce default speedtest1-with-OPFS workload size in ext/wasm/index.html to speed up manual testing.
FossilOrigin-Name:
2daba2cdd3890c87899ff3eb0c1706c814f0ae62e72822eef3b0d4a885679a6b
dan [Tue, 11 Jul 2023 20:57:19 +0000 (20:57 +0000)]
Have contentless_delete=1 tables support REPLACE statements.
FossilOrigin-Name:
2f553a660e00564e51bc4209c92bd3628fb1266f4a52832792fbf91e4234a0ba
dan [Tue, 11 Jul 2023 20:19:46 +0000 (20:19 +0000)]
Have contentless_delete=1 tables support regular DELETE statements, instead of just the special INSERT syntax.
FossilOrigin-Name:
fffb8616905501669a94231d5d9f53446bf09553353f2cdab7c43ca54bbb7fa6
drh [Tue, 11 Jul 2023 19:54:17 +0000 (19:54 +0000)]
Reduce divergence between branches: trunk and wal-shm-exceptions.
FossilOrigin-Name:
d38ed6b1fc6b572997d520c36f256c11404fb1bd5f28acab07466bfc96554a8f
dan [Tue, 11 Jul 2023 18:55:19 +0000 (18:55 +0000)]
Use a hash-table instead of a flat list to store tombstone rowids.
FossilOrigin-Name:
948267b066d0dbe667881b3d26a007fa24576da6e57c112676fadeb846c13f0b
dan [Mon, 10 Jul 2023 20:44:09 +0000 (20:44 +0000)]
Begin adding support for deleting rows from contentless fts5 tables.
FossilOrigin-Name:
e513bea84dfaf2280f7429c9a528b3a1354a46c36e58ab178ca45478975634e0
drh [Sat, 8 Jul 2023 17:42:24 +0000 (17:42 +0000)]
Always use the "LL" suffix on 64-bit integer literals.
FossilOrigin-Name:
07d95ed60f0a17ea13b4bc19c2ab2ec9052fedd27c9e1e57a1ec6e3a6470e5b7
drh [Sat, 8 Jul 2023 14:27:55 +0000 (14:27 +0000)]
drh [Fri, 7 Jul 2023 18:49:08 +0000 (18:49 +0000)]
Omit the use of memmove() in sqlite3FpDecode() in an attempt to avoid
spurious warnings from valgrind. Also makes the code slightly smaller and
faster.
FossilOrigin-Name:
b409943af00e35ad05906d0a80ffa1225a66f3d807c131e00cfbf6671a03a981
drh [Fri, 7 Jul 2023 12:18:26 +0000 (12:18 +0000)]
For the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind
does not correctly emulated extended precision on x64.
FossilOrigin-Name:
d3532eaed1cc671d8149b1bd34ead2a88fb83502a2898a5f60aea0a7daf18958
drh [Fri, 7 Jul 2023 12:08:22 +0000 (12:08 +0000)]
Add option 2 to SQLITE_TESTCTRL_USELONGDOUBLE to move the setting to its
defaults. Enhance the CLI and testfixture to make use of this value.
Base the default on sizeof(LONGDOUBLE_TYPE) rather than on sizeof(long double).
FossilOrigin-Name:
64e6bd1c25d8e1dbfe511cba1921ff052c0fa4fe410fc9ce4435700a70cb88b1
drh [Thu, 6 Jul 2023 20:34:06 +0000 (20:34 +0000)]
Improved handling of integer inputs to the new sum() implementation.
FossilOrigin-Name:
31561c63bde6af2210296810fd66232b935033b4d26273a6b8a52142c54b4e12
drh [Thu, 6 Jul 2023 18:29:15 +0000 (18:29 +0000)]
A more precise implementation of sqlite3RealToI64().
FossilOrigin-Name:
8813317cb52990d90bd48de163b6e35ddcad2b6f3187aa28b28e2e088b4489ce
drh [Thu, 6 Jul 2023 17:14:47 +0000 (17:14 +0000)]
Fix octet_length() test cases so that they work when the database encoding
is utf16.
FossilOrigin-Name:
ad2e39626e6115fd322ef9495ae3bcd91343d7131a725f1bf24211a51a21dcc2
drh [Thu, 6 Jul 2023 15:44:38 +0000 (15:44 +0000)]
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum().
FossilOrigin-Name:
c63e26e705f5e967e14ef6aea8ce226548293ad8d25066069f29fa89673913d2
drh [Thu, 6 Jul 2023 14:45:53 +0000 (14:45 +0000)]
Fix minor inaccuracies in the new sum() algorithm.
FossilOrigin-Name:
e3f7a960c9bd8e84cd70f0585bb955d043604a92001d0e2bf6c1216bb1fd7221
drh [Thu, 6 Jul 2023 13:19:10 +0000 (13:19 +0000)]
Experimental attempt to boost the accuracy of sum() using the
Kahan-Babuska-Neumaier algorithm.
FossilOrigin-Name:
ebc5edd3b10c1102b07b9fb0d6837266b81e55504ef883b9b8a7ad5e8ab29dd2
drh [Thu, 6 Jul 2023 00:55:06 +0000 (00:55 +0000)]
Use "volatile" isntead of "#pragma" to get floating point calculations
working correctly when compiling with GCC for x86 machines.
FossilOrigin-Name:
9427f42687ed6d97c474bf42d0c3e82d6f4b0075e74206adcb5699d72e32140e
drh [Wed, 5 Jul 2023 22:05:18 +0000 (22:05 +0000)]
This is alternative work-around for the x86 float-point problem that uses
"volatile" rather than compile-specific #pragmas.
FossilOrigin-Name:
1d972a690fdc70ab40862bd38427d68b48e8802ddf8e5c301f2d58ce2178b6ec
drh [Wed, 5 Jul 2023 19:56:14 +0000 (19:56 +0000)]
Improved comments on the work-around to the GCC x86 floating point wonkiness.
FossilOrigin-Name:
7b4c16731e7bf6f03f5adf4fcb2008c0b19be473fb1b90b405c217c08916586a
drh [Wed, 5 Jul 2023 18:59:52 +0000 (18:59 +0000)]
Work around for an apparent GCC bug. See
[forum:/info/
ee7278611394034c |forum post
ee7278611394034c ] for details.
FossilOrigin-Name:
5d9e9364808793d65925d4efbfde0f4246df258758f15e8ce1105070d1018fe6
drh [Wed, 5 Jul 2023 15:34:30 +0000 (15:34 +0000)]
Make the order of operations explicit for the error term of Dekker
double-precision multiply.
FossilOrigin-Name:
28f57b34e6b11184a36e363a985e7531bddd7be48a5e039a670e5acf748eedda
drh [Wed, 5 Jul 2023 14:42:50 +0000 (14:42 +0000)]
Simplification of the dekkerMul2() subroutine.
FossilOrigin-Name:
bfe6432a46fd41bfadf4516a73b4e2523d9b453c3e4486fe6df7e1d25275dfb3
drh [Wed, 5 Jul 2023 12:00:32 +0000 (12:00 +0000)]
Add the ieee754_inc(r,N) function to the ieee754.c extension.
FossilOrigin-Name:
9a36f269451d8832f68e223ac3995493704364e7fd0cc772989c96e863a08d29
drh [Mon, 3 Jul 2023 18:32:29 +0000 (18:32 +0000)]
Enhance the sqlite3AtoF() function so that it can operate with or without
long double and provides accurate results in both cases.
FossilOrigin-Name:
fd987508d5589d42b46625c97cfb2feeac70fdb1cb11224610554b07a60644e6
drh [Mon, 3 Jul 2023 18:18:35 +0000 (18:18 +0000)]
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control.
Enable the test/atof1.test module on non-intel platforms.
FossilOrigin-Name:
b7850fd480535980d66f107c2746e7f7fc0a5379ec8244d84f7785533c83f276
drh [Mon, 3 Jul 2023 15:30:50 +0000 (15:30 +0000)]
Store the fp-speed-1.c test program used to measure relative performance of
SQLite versus the standard library, in the test/ directory. A header comment
explains how to use it.
FossilOrigin-Name:
eaff376277edceb043e9aac9d2df3e1157f576605508733be8a0a0aa4d720e1d
drh [Mon, 3 Jul 2023 15:11:28 +0000 (15:11 +0000)]
Add the --nolongdouble option to speedtest1.c.
FossilOrigin-Name:
6bf6018a00d61c5f0e53b37b00befaf5ad1d85323f41cf0cea25d8c6c1017096
drh [Mon, 3 Jul 2023 15:03:59 +0000 (15:03 +0000)]
Improved precision of binary-to-decimal conversion of floating-point values
on all systems but especially non-x86 systems that lake extended precision
hardward floating point.
FossilOrigin-Name:
32befb224b254639e756fd493f300507ff60c5222e00a7338dbcd39140133964
drh [Mon, 3 Jul 2023 14:56:49 +0000 (14:56 +0000)]
Whether or not to use the long-double floating point conversion technique
is now a test-control setting.
FossilOrigin-Name:
02ae6caff1f7925c696ad263fe78b1036364d24b6373e1baec10d53aafb14a12
drh [Mon, 3 Jul 2023 12:58:18 +0000 (12:58 +0000)]
New test cases for floating-point conversions.
FossilOrigin-Name:
9435ed76cd9bb1be02768b3853a2323834f67bda75d3e3f76f6aa7bd0bade3d7
drh [Mon, 3 Jul 2023 11:44:15 +0000 (11:44 +0000)]
Use Dekker double-precision floating point to do the value normalization
step in sqlite3FpDecode() for systems on which "long double" is 8 bytes or
less.
FossilOrigin-Name:
51f492b440728151ce64168d5436ba87ca60d84b89408e47c593fa731355afe4
drh [Mon, 3 Jul 2023 11:39:38 +0000 (11:39 +0000)]
Final clean-up of the idea of using Dekker double-precision floating
computations to improve accuracy.
FossilOrigin-Name:
40285d631072b79aba39cc20d4b217bdf0069f29ac9902cb97dec28d3e4cde11
drh [Mon, 3 Jul 2023 10:35:29 +0000 (10:35 +0000)]
Squeeze as many bits as we can out of normalization.
FossilOrigin-Name:
25d1ad6df1ed460c2cc9f32e8a5106e121ae502044f83abf431c1d5b3879eb56
drh [Mon, 3 Jul 2023 10:18:02 +0000 (10:18 +0000)]
Faster Dekker multiplication that removes the restriction on input magnitude.
FossilOrigin-Name:
2994caf5884be07c889519c78fbac4ddcf267fcfe6a3265ecb6390bcd574532e
drh [Mon, 3 Jul 2023 10:00:38 +0000 (10:00 +0000)]
Fix one constant in the normalization logic. Improved error output
from atof1.test.
FossilOrigin-Name:
d3c48807100a358a70fdd799c8935eba1b765ace2e1ddea4475fd673006cb6da
drh [Mon, 3 Jul 2023 09:07:23 +0000 (09:07 +0000)]
Replace the dodgy error estimating logic in the previous check-in with
full-up Dekker double-double multiplication, and this idea works much better.
There are still a few inaccuracies, but it is much closer.
FossilOrigin-Name:
4fa6938dac2d3d813a37664053db31451a2a065f78dd212488f5f7f8d583ddc5
drh [Mon, 3 Jul 2023 00:40:37 +0000 (00:40 +0000)]
An idea for improving accuracy of fp-to-decimal conversion for systems that
do not have "long double". Does not quite work. Retained only for
documentation purposes.
FossilOrigin-Name:
702243333843219f8904ee0fd12283080d6c6b3fc1ffb36c534cdefb3563c00d
drh [Sat, 1 Jul 2023 20:21:27 +0000 (20:21 +0000)]
This check-in adds the use of "long double" to sqlite3FpDecode() which when
run on x86 using a compiler that translates "long double" into binary80,
causes all legacy tests to pass. But on a system where "long double" is just
an alias for "double", some of the tests are still failing.
FossilOrigin-Name:
ce06982f880339cf46704e95c907249827c3e44af2b9420005200ca8abd3f371
drh [Sat, 1 Jul 2023 18:33:26 +0000 (18:33 +0000)]
Reinstate the fpdecode() SQL function for testing, but only when compiled
with SQLITE_DEBUG.
FossilOrigin-Name:
07eab52e0801bb0e4743b304a06ad16e18cdf8eaa18c0faf8d47a1f5d8576ea0
drh [Sat, 1 Jul 2023 17:56:00 +0000 (17:56 +0000)]
drh [Sat, 1 Jul 2023 15:23:24 +0000 (15:23 +0000)]
Improved response to Infinity and NaN. Remove the termporary fpdecode()
function.
FossilOrigin-Name:
76ab8ae809a47a66688e2d50c20dc87ce946d82e9ffebb3adda55c451fad07fc
drh [Sat, 1 Jul 2023 14:03:50 +0000 (14:03 +0000)]
Progress towards fixing corner-case floating-point formatting issues.
FossilOrigin-Name:
1138b8d16edef16d2943d407e289d07d546a14e64c3efa3c94127631e06fafeb
drh [Fri, 30 Jun 2023 23:42:46 +0000 (23:42 +0000)]
Fix an issue with the "+" attribute in printf().
FossilOrigin-Name:
bdfd1eb1d7b4c570a53d58789dac0bf55fdaf8eba515d5a0caf2e57e25b51952
drh [Fri, 30 Jun 2023 23:18:44 +0000 (23:18 +0000)]
Begin cutting over sqlite3FpDecode() into printf(). The code in this
check-in gets a lot right, but there are still some formatting
discrepencies.
FossilOrigin-Name:
c134d423e79ba5d3343d7480229822a0c83210f67f12129e0237181f892f97a5
drh [Fri, 30 Jun 2023 19:41:57 +0000 (19:41 +0000)]
Add decimal rounding to the sqlite3FpDecode() routine.
FossilOrigin-Name:
27871140caa833f0bc0962e44356993938e93dcf81c1074382b1560a3e1aeb61
drh [Fri, 30 Jun 2023 18:35:43 +0000 (18:35 +0000)]
Experiments with a new algorithm for converting ieee-754 binary64 numbers
into decimal.
FossilOrigin-Name:
e923405e448385085224f9289991b303d86b02763535ea77d6fcee98ba6fc1f2
dan [Fri, 30 Jun 2023 18:31:37 +0000 (18:31 +0000)]
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree, and for sub-queries implemented as co-routines.
FossilOrigin-Name:
7afad1f759f7ceda873c6d869422fd56fe4399c2d24d47ad9bc3b84b06d830d1
dan [Fri, 30 Jun 2023 18:23:53 +0000 (18:23 +0000)]
Improve support for sqlite3_stmt_scanstatus_v2() profiling of sub-queries implemented as co-routines.
FossilOrigin-Name:
4e8718dc35dbbaf75f17265a88d14acd9750dc75efbadf41377f9c97e732009c
dan [Fri, 30 Jun 2023 17:14:36 +0000 (17:14 +0000)]
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree.
FossilOrigin-Name:
796eadcc50e7ea9ec348b1f7e2d6a5a3de78c675a07f665078309e6d81479e7d
dan [Fri, 30 Jun 2023 16:16:51 +0000 (16:16 +0000)]
Add extra debugging code for sqlite3_stmt_scanstatus_v2() to test1.c.
FossilOrigin-Name:
f936f101406069b29218c89a36581b4497226fb61906782ea368f12d943c901c
drh [Fri, 30 Jun 2023 14:01:09 +0000 (14:01 +0000)]
Completely unwind the enhanced precision sum() from [
a915f15a916af698 ] so
as not to offend UBSAN and OSS-Fuzz.
FossilOrigin-Name:
85be05b66ef975f02a3e7b2984bcab97d9280c7f3b6ee1e16718de549f240d46
drh [Fri, 30 Jun 2023 12:59:06 +0000 (12:59 +0000)]
Omit the doubleToReal() function in vdbemem.c. Use the
equivalent sqlite3RealToI64() function in its place.
FossilOrigin-Name:
625820e8ebfdcf513c81b1b632bbe2aa882a8fbba52001113dc6f56270fa5ceb
drh [Fri, 30 Jun 2023 11:51:36 +0000 (11:51 +0000)]
Make the sum() function less precise and slower in order to avoid
harmless signed integer overflow UBSAN warnings from OSS-Fuzz.
FossilOrigin-Name:
1be0646a2c352dbf03d2af87fd48b6f9edfd68666790ac6863144ac95f3e0621
drh [Thu, 29 Jun 2023 23:03:30 +0000 (23:03 +0000)]
Cleanup and commenting of the new DECIMAL extension code. No functional
changes.
FossilOrigin-Name:
5124481663eb8e74a9f861be98adb7075ea911fcff0216d98c658e955acadf14
drh [Thu, 29 Jun 2023 20:28:03 +0000 (20:28 +0000)]
Enhancements to the DECIMAL extension:
(1) If the argument to decimal(X) is a floating point value (or an 8-byte blob),
the floating point value is expanded into its exact decimal representation.
(2) Function decimal_sci(X) works the same except it returns the result in
scientific notation.
(3) New function decimal_pow2(N) returns the full decimal expansion of the N-th
integer power of 2.
FossilOrigin-Name:
8baf8c10aecb261751f2b154356ab224b79d07230929ec9f123791278e601bba
drh [Thu, 29 Jun 2023 17:48:32 +0000 (17:48 +0000)]
Fix harmless compiler warnings about unused function arguments.
FossilOrigin-Name:
24927c1377314a10177da4a57191593440aa97fd0c5949fdf25a22df1d947600
drh [Thu, 29 Jun 2023 17:36:18 +0000 (17:36 +0000)]
Improve the range of floating-point numbers that can be handled as integers
for numeric-to-text conversion.
FossilOrigin-Name:
41580ba452fdbc3f73da60d8030289d38614c4cab8d24140d7cc44a54b2da8d2
drh [Thu, 29 Jun 2023 17:26:21 +0000 (17:26 +0000)]
Further refine the dtostr() testing function in the CLI so that it takes an
optional second parameter which is the number of significant digits to display.
FossilOrigin-Name:
2f9d4444aa503102a00d6e6769dadc57d4b26a2c07f145f23f2f28e0c161246d
drh [Thu, 29 Jun 2023 16:48:25 +0000 (16:48 +0000)]
Change the (undocumented) dtostr() SQL function in the CLI so that it only
shows the first 26 significant digits - 10 more digits than are available
in a 64-bit double.
FossilOrigin-Name:
d758859f6ab94ddb9b3ee6f6f5f24b16e2b7a7712761080cfc6540d68b5a0c97
drh [Thu, 29 Jun 2023 14:49:23 +0000 (14:49 +0000)]
Add the decimal_sci(X) function to the Decimal extension for showing a decimal
value in scientific notation: +D.DDDDDe+DD
FossilOrigin-Name:
61d4923913e88b980ce93db4f3f9f9d7ba3baaac724995c36c9b887c034accdc
drh [Thu, 29 Jun 2023 12:14:10 +0000 (12:14 +0000)]
CLI enhancements to facilitate SQLite core testing:
(1) Add built-in functions strtod() and dtostr() that convert text to
floating point and back using C-library routines.
(2) Do not disable all of ".testctrl" without --unsafe-testing, but only
those subcommands of .testctrl that are actually dangerous.
FossilOrigin-Name:
669996a8ddcbf35f3de66cf466508fc1e6dd09ab269aba395ac86a11b2ec238c
drh [Wed, 28 Jun 2023 12:02:48 +0000 (12:02 +0000)]
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running
sum is accurate to about 100 bits.
FossilOrigin-Name:
a915f15a916af698e0cef46c8b3e7ed11bda19349179d2d414073cd39c4cce24
drh [Wed, 28 Jun 2023 11:46:28 +0000 (11:46 +0000)]
Improved accuracy of floating-point conversion constants as suggested by
[forum:/info/
598d32f6135c41c1 |forum post
598d32f6135c41c1 ].
FossilOrigin-Name:
4943e8a1819e189747eefc414d02c0485e1620deff9cf92664295b21a8a9a83c