SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

100 check-ins occurring around 85be05b66ef975f02a3e.

2023-07-07
18:49
Omit the use of memmove() in sqlite3FpDecode() in an attempt to avoid spurious warnings from valgrind. Also makes the code slightly smaller and faster. (check-in: b409943af0 user: drh tags: trunk)
16:58
Proof of concept for a new sqlite3_function_needed() interface. (Leaf check-in: cd67edc032 user: drh tags: need-function)
12:18
For the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind does not correctly emulated extended precision on x64. (check-in: d3532eaed1 user: drh tags: trunk)
12:08
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). (check-in: 64e6bd1c25 user: drh tags: trunk)
2023-07-06
20:34
Improved handling of integer inputs to the new sum() implementation. (check-in: 31561c63bd user: drh tags: trunk)
18:29
A more precise implementation of sqlite3RealToI64(). (check-in: 8813317cb5 user: drh tags: trunk)
17:55
Merge all recent trunk enhancements into the wal-shm-exceptions branch. (check-in: e59cea2d85 user: drh tags: wal-shm-exceptions)
17:14
Fix octet_length() test cases so that they work when the database encoding is utf16. (check-in: ad2e39626e user: drh tags: trunk)
15:44
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum(). (check-in: c63e26e705 user: drh tags: trunk)
14:45
Fix minor inaccuracies in the new sum() algorithm. (Closed-Leaf check-in: e3f7a960c9 user: drh tags: kahan-babuska-neumaier-summation)
13:19
Experimental attempt to boost the accuracy of sum() using the Kahan-Babuska-Neumaier algorithm. (check-in: ebc5edd3b1 user: drh tags: kahan-babuska-neumaier-summation)
00:55
Use "volatile" isntead of "#pragma" to get floating point calculations working correctly when compiling with GCC for x86 machines. (check-in: 9427f42687 user: drh tags: trunk)
2023-07-05
22:05
This is alternative work-around for the x86 float-point problem that uses "volatile" rather than compile-specific #pragmas. (Closed-Leaf check-in: 1d972a690f user: drh tags: fix-dekker-with-volatile)
19:56
Improved comments on the work-around to the GCC x86 floating point wonkiness. (check-in: 7b4c16731e user: drh tags: trunk)
18:59
Work around for an apparent GCC bug. See forum post ee7278611394034c for details. (check-in: 5d9e936480 user: drh tags: trunk)
15:34
Make the order of operations explicit for the error term of Dekker double-precision multiply. (check-in: 28f57b34e6 user: drh tags: trunk)
14:42
Simplification of the dekkerMul2() subroutine. (check-in: bfe6432a46 user: drh tags: trunk)
12:00
Add the ieee754_inc(r,N) function to the ieee754.c extension. (check-in: 9a36f26945 user: drh tags: trunk)
2023-07-03
18:32
Enhance the sqlite3AtoF() function so that it can operate with or without long double and provides accurate results in both cases. (check-in: fd987508d5 user: drh tags: trunk)
18:18
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control. Enable the test/atof1.test module on non-intel platforms. (Closed-Leaf check-in: b7850fd480 user: drh tags: fp-to-decimal-refactor)
15:30
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. (check-in: eaff376277 user: drh tags: trunk)
15:11
Add the --nolongdouble option to speedtest1.c. (check-in: 6bf6018a00 user: drh tags: trunk)
15:03
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. (check-in: 32befb224b user: drh tags: trunk)
14:56
Whether or not to use the long-double floating point conversion technique is now a test-control setting. (check-in: 02ae6caff1 user: drh tags: fp-to-decimal-refactor)
12:58
New test cases for floating-point conversions. (check-in: 9435ed76cd user: drh tags: fp-to-decimal-refactor)
11:44
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. (check-in: 51f492b440 user: drh tags: fp-to-decimal-refactor)
11:39
Final clean-up of the idea of using Dekker double-precision floating computations to improve accuracy. (Closed-Leaf check-in: 40285d6310 user: drh tags: fp-to-decimal-branch1)
10:35
Squeeze as many bits as we can out of normalization. (check-in: 25d1ad6df1 user: drh tags: fp-to-decimal-branch1)
10:18
Faster Dekker multiplication that removes the restriction on input magnitude. (check-in: 2994caf588 user: drh tags: fp-to-decimal-branch1)
10:00
Fix one constant in the normalization logic. Improved error output from atof1.test. (check-in: d3c4880710 user: drh tags: fp-to-decimal-branch1)
09:07
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. (check-in: 4fa6938dac user: drh tags: fp-to-decimal-branch1)
00:51
The fptest(X) routine used for exploring another idea for improving fp-to-decimal conversion without the use of long double. (Leaf check-in: d9a883d7d8 user: drh tags: fp-to-decimal-branch2)
00:40
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. (check-in: 7022433338 user: drh tags: fp-to-decimal-branch1)
2023-07-01
20:21
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. (check-in: ce06982f88 user: drh tags: fp-to-decimal-refactor)
18:33
Reinstate the fpdecode() SQL function for testing, but only when compiled with SQLITE_DEBUG. (check-in: 07eab52e08 user: drh tags: fp-to-decimal-refactor)
17:56
Improved rounding policy. (check-in: 6f1122e942 user: drh tags: fp-to-decimal-refactor)
15:23
Improved response to Infinity and NaN. Remove the termporary fpdecode() function. (check-in: 76ab8ae809 user: drh tags: fp-to-decimal-refactor)
14:03
Progress towards fixing corner-case floating-point formatting issues. (check-in: 1138b8d16e user: drh tags: fp-to-decimal-refactor)
2023-06-30
23:42
Fix an issue with the "+" attribute in printf(). (check-in: bdfd1eb1d7 user: drh tags: fp-to-decimal-refactor)
23:18
Begin cutting over sqlite3FpDecode() into printf(). The code in this check-in gets a lot right, but there are still some formatting discrepencies. (check-in: c134d423e7 user: drh tags: fp-to-decimal-refactor)
19:41
Add decimal rounding to the sqlite3FpDecode() routine. (check-in: 27871140ca user: drh tags: fp-to-decimal-refactor)
19:14
Add experimental ".scanstats vm" command to the shell tool. (check-in: e727640fb5 user: dan tags: scanstatus-exp)
19:13
Fix an error in the previous commit on this branch. (check-in: 47c11ca90f user: dan tags: scanstatus-exp)
18:59
Add the "nexec" and "ncycle" columns to the bytecode virtual table. For accessing counters collected when SQLITE_DBCONFIG_STMT_SCANSTATUS is enabled. (check-in: f7b163a319 user: dan tags: scanstatus-exp)
18:35
Experiments with a new algorithm for converting ieee-754 binary64 numbers into decimal. (check-in: e923405e44 user: drh tags: fp-to-decimal-refactor)
18:31
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. (check-in: 7afad1f759 user: dan tags: trunk)
18:23
Improve support for sqlite3_stmt_scanstatus_v2() profiling of sub-queries implemented as co-routines. (Closed-Leaf check-in: 4e8718dc35 user: dan tags: scanstatus-exp)
17:14
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree. (check-in: 796eadcc50 user: dan tags: scanstatus-exp)
16:16
Add extra debugging code for sqlite3_stmt_scanstatus_v2() to test1.c. (check-in: f936f10140 user: dan tags: trunk)
14:01
Completely unwind the enhanced precision sum() from [a915f15a916af698] so as not to offend UBSAN and OSS-Fuzz. (check-in: 85be05b66e user: drh tags: trunk)
12:59
Omit the doubleToReal() function in vdbemem.c. Use the equivalent sqlite3RealToI64() function in its place. (check-in: 625820e8eb user: drh tags: trunk)
11:51
Make the sum() function less precise and slower in order to avoid harmless signed integer overflow UBSAN warnings from OSS-Fuzz. (check-in: 1be0646a2c user: drh tags: trunk)
2023-06-29
23:03
Cleanup and commenting of the new DECIMAL extension code. No functional changes. (check-in: 5124481663 user: drh tags: trunk)
20:28
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. (check-in: 8baf8c10ae user: drh tags: trunk)
17:58
Sync w/trunk (check-in: fe9aa2e9c1 user: larrybr tags: cli_extension)
17:48
Fix harmless compiler warnings about unused function arguments. (check-in: 24927c1377 user: drh tags: trunk)
17:36
Improve the range of floating-point numbers that can be handled as integers for numeric-to-text conversion. (check-in: 41580ba452 user: drh tags: trunk)
17:26
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. (check-in: 2f9d4444aa user: drh tags: trunk)
16:48
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. (check-in: d758859f6a user: drh tags: trunk)
14:49
Add the decimal_sci(X) function to the Decimal extension for showing a decimal value in scientific notation: +D.DDDDDe+DD (check-in: 61d4923913 user: drh tags: trunk)
12:14
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. (check-in: 669996a8dd user: drh tags: trunk)
2023-06-28
12:02
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running sum is accurate to about 100 bits. (check-in: a915f15a91 user: drh tags: trunk)
11:46
Improved accuracy of floating-point conversion constants as suggested by forum post 598d32f6135c41c1. (check-in: 4943e8a181 user: drh tags: trunk)
2023-06-26
19:57
Simple test cases for the enhanced SUM() function. (Closed-Leaf check-in: c66ef2440e user: drh tags: extended-precision-fp)
19:35
Use ideas from T. J. Dekker in "A Floating-Point Technique for Extending the Available Precision" (1971-07-26) to enhance the accuracy of the SUM() aggregate function in cases where input magnitudes vary wildly. (check-in: 439fc00fee user: drh tags: extended-precision-fp)
17:23
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: bc27bda164 user: larrybr tags: branch-3.42)
17:08
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: 9d7813ddcf user: larrybr tags: trunk)
07:20
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: b6ae84915f user: stephan tags: branch-3.42)
07:05
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: d4e66dfc2e user: stephan tags: trunk)
2023-06-25
20:23
Fix typo in the README.md file. (check-in: 6d435d1dac user: drh tags: trunk)
2023-06-23
11:10
Add support for the octet_length() SQL function, with low-level optimizations that avoid loading large string content from disk when the argument to octet_length() is a table column. (check-in: fa5f77862c user: drh tags: trunk)
2023-06-22
21:19
Optimize the argument to the octet_length() function so that it does not attempt to read content from disk. (Closed-Leaf check-in: 8b8ea4e3f5 user: drh tags: octet_length)
15:26
basic test cases for octet_length(). (check-in: 034a5fe2a0 user: drh tags: octet_length)
14:50
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 905c6c9ddb user: drh tags: reuse-schema)
14:40
Merge the latest trunk enhancements into the bedrock branch. (check-in: 0551b79b17 user: drh tags: bedrock)
14:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: 80ac494f73 user: drh tags: wal2)
13:28
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 5bd26fea6a user: drh tags: begin-concurrent)
13:01
Merge recent trunk enhancements into the octet_length branch. (check-in: d35c214811 user: drh tags: octet_length)
01:03
Simplification to the getAndInitPage() routine that results in improved performance. (check-in: 2e9734c233 user: drh tags: trunk)
2023-06-21
21:47
Improved comment on the getAndInitPage() in btree.c. No code changes. (check-in: dc468cfdb8 user: drh tags: trunk)
18:12
This is a failed attempt to optimize the usage of the page cache in sqlite3BtreeIndexMoveto() by deferring calls to sqlite3PagerUnref() for child pages of the btree until we are sure those pages will not be reused. The code does not work in two senses: (1) Many tests still fail. (2) The performance gain is less than 2 million cycles and does not seem worth the extra risk and complication. (Closed-Leaf check-in: 84731a1fd2 user: drh tags: pcache-opt)
14:48
Sync w/trunk (for CLI -cachetrace) (check-in: a61f937701 user: larrybr tags: cli_extension)
14:11
Add the --pcachetrace option to the CLI. (check-in: 61dfa92b44 user: drh tags: trunk)
2023-06-20
17:45
Omit unnecessary calls to table locking routines in the common case when there is no shared cache. (check-in: f94f3021cd user: drh tags: trunk)
16:26
Avoid unnecessary calls to sqlite3DeleteTable() with NULL pointers. (check-in: 4a35f39199 user: drh tags: trunk)
15:48
Avoid unnecessary calls to sqlite3CodeRowTrigger(). (check-in: 27c174dbd0 user: drh tags: trunk)
11:46
Performance optimization in sqlite3VdbeAddOp4Int(). (check-in: 456a24324b user: drh tags: trunk)
2023-06-19
23:27
Avoid unnecessary NULL pointer checks on calls to sqlite3WalkExpr(). (check-in: 73d86a12fb user: drh tags: trunk)
20:54
Small performance improvement and size reduction by recognizing that no SQL keywords have less than 2 characters. (check-in: 6b3d25b798 user: drh tags: trunk)
18:16
Add the sqlite3_commit_status() API. For querying a connection for (a) the ranges of wal/wal2 frames written after a successful commit, and (b) the conflicting frame following a failed commit of a BEGIN CONCURRENT transaction. (check-in: 4b08d4dad6 user: dan tags: bedrock)
13:09
Fix large integer constants so that they work on older C compilers. (check-in: 3c94f87806 user: drh tags: trunk)
2023-06-17
23:53
Cure tclshext build warning. Sync w/trunk. (check-in: e9f2119106 user: larrybr tags: cli_extension)
15:42
Fix harmless compiler warnings that show up on 32-bit RaspberryPI builds. (check-in: bc4d20f362 user: drh tags: trunk)
15:22
In date/time functions, fix the rendering of "subsecond" and the computeHMS() routine to better deal with floating point rounding errors that arise on some 32-bit systems. (check-in: e46a00ae88 user: drh tags: trunk)
01:56
Sync w/trunk. (check-in: 746733c1c5 user: larrybr tags: cli_extension)
2023-06-16
19:45
Clear MSVC warnings and fix a typedef issue with MSVC build. (check-in: b0cb4cfcea user: larrybr tags: cli_extension)
14:39
Address various harmless compiler warnings from forum post d526da8ee4. (check-in: 365caf2f97 user: drh tags: trunk)
11:05
Fix the pager such that if the xOpen() message sends back the SQLITE_OPEN_MEMORY flag, the pager is opened in journal-mode MEMORY, even if compiled with SQLITE_OMIT_DESERIALIZE. No changes to the logic as long as that OMIT flag is omitted. We need to better document the behavior of xOpen to describe this. (check-in: da1252b298 user: drh tags: trunk)
02:18
More doc tweaks, one teensy enhancement, and a new feature bug fix (check-in: 1073ef0629 user: larrybr tags: cli_extension)
2023-06-15
16:02
Updates to the README.md file. (check-in: fa5cb6dab5 user: drh tags: trunk)