drh
0588385799
Simplification to sqlite3GetVarint32() to avoid confusing gcov.
...
FossilOrigin-Name: 89862c51ad9715bedf5b029db484602e740f0db7404970d482ce503c1b9a0ed2
2023-10-19 13:35:22 +00:00
drh
e744f66008
According to [forum:/forumpost/9f6db917e1|forum post 9f6db917e1], older
...
MSVC compilers are unable to convert a double directly into an unsigned
long long int, but must first go through a signed long long int. Work
around this by restricting the range of doubles that are converted into
long long integers so that only the lower 63 bits are used.
FossilOrigin-Name: 0ab05871ba36e2a0eddfbc700c1d39891c54c453727a4effcdac3327efec163b
2023-09-14 16:45:46 +00:00
stephan
0d066bc8a6
Resolve a condition which could cause an is-interrupted db to call its progress callback.
...
FossilOrigin-Name: a0d0f1aafc6086726131dff5e6628f2771c20db3122a53bdbb82945ab5d326d1
2023-08-28 12:06:38 +00:00
drh
4d8eb16f07
Rename the decimal_sci() function to decimal_exp().
...
[forum:/forumpost/fa027bb0ab|Forum post fa027bb0ab].
FossilOrigin-Name: c48f1be8cc505a7e2902c79e26c1d9a121ff5c55785ac812d2e09232b2414695
2023-08-18 15:39:38 +00:00
drh
b93760e1e7
Use a dodgy substitute if the INFINITY macro is not available. See
...
[forum:/forumpost/8e66e19bb9|forumpost 8e66e19bb9].
FossilOrigin-Name: 4ae72c896761df5cd37c98ca3eeee7d4c6af3e4ccf74edd88ff902ef38f0765b
2023-08-15 12:27:27 +00:00
dan
6de6121e36
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 3ed89c344fcb3b7ee8b764d95144643e42e053e1116150d6eda8355fbd6669df
2023-08-10 17:07:34 +00:00
drh
d3229ce23e
Remove an unreachable branch in the ascii-to-floating-point conversion that
...
was added by [e989a37ff9d5b52e].
FossilOrigin-Name: c4347e4400e96f932ac12f8f22484a2ebce2a578d1b2181977954c432f117bfd
2023-08-02 13:45:16 +00:00
drh
cbaef88980
Avoid ASAN warnings when converting over-sized long double values into double.
...
FossilOrigin-Name: e989a37ff9d5b52e0090d59be077ad2260c8df5d4c2c2d8088b1160de64dffd4
2023-08-01 19:10:30 +00:00
drh
5202b7ca75
Update the latest trunk enhancements into the wal-shm-exceptions branch.
...
FossilOrigin-Name: 3187ee3f69fc28a259ba0e951ac10a65c07ef2c3866acbefaf9544333a930cc6
2023-07-24 12:59:53 +00:00
drh
028acd974f
Avoid a potentially large strlen() in sqlite3DecOrHexToI64().
...
FossilOrigin-Name: 5413b02bb629b9cbb76f7e688e94ebcf24276c01436d3feb73ff57c036e1d2aa
2023-07-21 18:38:59 +00:00
drh
cc9380f68d
Merge the latest trunk enhancements into the wal-shm-exceptions branch.
...
FossilOrigin-Name: f655d08d019bab0c578886e91ca24fd956d1b3dea9b9c9104812b3cf62e5e556
2023-07-10 18:05:23 +00:00
drh
4c40b7b819
Always use the "LL" suffix on 64-bit integer literals.
...
FossilOrigin-Name: 07d95ed60f0a17ea13b4bc19c2ab2ec9052fedd27c9e1e57a1ec6e3a6470e5b7
2023-07-08 17:42:24 +00:00
drh
bc532ae15f
Fix harmless scan-build warnings.
...
FossilOrigin-Name: beab3c98639be531744e60440223bb9ee76bc15234aff05e5efb273c8241dfd8
2023-07-08 14:27:55 +00:00
drh
50ba4e3efd
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
2023-07-07 18:49:08 +00:00
drh
ff96718b52
Merge all recent trunk enhancements into the wal-shm-exceptions branch.
...
FossilOrigin-Name: e59cea2d851be68559e7d01a01cb05684c44d151d022ea9790ce99671016ab00
2023-07-06 17:55:33 +00:00
drh
efd0cf87df
This is alternative work-around for the x86 float-point problem that uses
...
"volatile" rather than compile-specific #pragmas.
FossilOrigin-Name: 1d972a690fdc70ab40862bd38427d68b48e8802ddf8e5c301f2d58ce2178b6ec
2023-07-05 22:05:18 +00:00
drh
728650ecb3
Improved comments on the work-around to the GCC x86 floating point wonkiness.
...
FossilOrigin-Name: 7b4c16731e7bf6f03f5adf4fcb2008c0b19be473fb1b90b405c217c08916586a
2023-07-05 19:56:14 +00:00
drh
e68899f1e4
Work around for an apparent GCC bug. See
...
[forum:/info/ee7278611394034c|forum post ee7278611394034c] for details.
FossilOrigin-Name: 5d9e9364808793d65925d4efbfde0f4246df258758f15e8ce1105070d1018fe6
2023-07-05 18:59:52 +00:00
drh
85ca6d7ace
Make the order of operations explicit for the error term of Dekker
...
double-precision multiply.
FossilOrigin-Name: 28f57b34e6b11184a36e363a985e7531bddd7be48a5e039a670e5acf748eedda
2023-07-05 15:34:30 +00:00
drh
1790ccb98b
Simplification of the dekkerMul2() subroutine.
...
FossilOrigin-Name: bfe6432a46fd41bfadf4516a73b4e2523d9b453c3e4486fe6df7e1d25275dfb3
2023-07-05 14:42:50 +00:00
drh
aa4356da68
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control.
...
Enable the test/atof1.test module on non-intel platforms.
FossilOrigin-Name: b7850fd480535980d66f107c2746e7f7fc0a5379ec8244d84f7785533c83f276
2023-07-03 18:18:35 +00:00
drh
1b3c6e727e
Whether or not to use the long-double floating point conversion technique
...
is now a test-control setting.
FossilOrigin-Name: 02ae6caff1f7925c696ad263fe78b1036364d24b6373e1baec10d53aafb14a12
2023-07-03 14:56:49 +00:00
drh
0478d1d88a
New test cases for floating-point conversions.
...
FossilOrigin-Name: 9435ed76cd9bb1be02768b3853a2323834f67bda75d3e3f76f6aa7bd0bade3d7
2023-07-03 12:58:18 +00:00
drh
841e596ad0
Final clean-up of the idea of using Dekker double-precision floating
...
computations to improve accuracy.
FossilOrigin-Name: 40285d631072b79aba39cc20d4b217bdf0069f29ac9902cb97dec28d3e4cde11
2023-07-03 11:39:38 +00:00
drh
bc2b65832e
Squeeze as many bits as we can out of normalization.
...
FossilOrigin-Name: 25d1ad6df1ed460c2cc9f32e8a5106e121ae502044f83abf431c1d5b3879eb56
2023-07-03 10:35:29 +00:00
drh
5270d7424d
Faster Dekker multiplication that removes the restriction on input magnitude.
...
FossilOrigin-Name: 2994caf5884be07c889519c78fbac4ddcf267fcfe6a3265ecb6390bcd574532e
2023-07-03 10:18:02 +00:00
drh
37b188fbca
Fix one constant in the normalization logic. Improved error output
...
from atof1.test.
FossilOrigin-Name: d3c48807100a358a70fdd799c8935eba1b765ace2e1ddea4475fd673006cb6da
2023-07-03 10:00:38 +00:00
drh
c8885d42fe
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
2023-07-03 09:07:23 +00:00
drh
c27bda0b79
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
2023-07-03 00:40:37 +00:00
drh
fecdff4354
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
2023-07-01 20:21:27 +00:00
drh
17c20bb15e
Improved rounding policy.
...
FossilOrigin-Name: 6f1122e942b8269552daaf13d647d200d8546ec25f36310d67037c6b58d09976
2023-07-01 17:56:00 +00:00
drh
9ee9444a0a
Improved response to Infinity and NaN. Remove the termporary fpdecode()
...
function.
FossilOrigin-Name: 76ab8ae809a47a66688e2d50c20dc87ce946d82e9ffebb3adda55c451fad07fc
2023-07-01 15:23:24 +00:00
drh
42d042e602
Progress towards fixing corner-case floating-point formatting issues.
...
FossilOrigin-Name: 1138b8d16edef16d2943d407e289d07d546a14e64c3efa3c94127631e06fafeb
2023-07-01 14:03:50 +00:00
drh
aebeabacff
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
2023-06-30 23:18:44 +00:00
drh
002330dc48
Add decimal rounding to the sqlite3FpDecode() routine.
...
FossilOrigin-Name: 27871140caa833f0bc0962e44356993938e93dcf81c1074382b1560a3e1aeb61
2023-06-30 19:41:57 +00:00
drh
a1b0ff1735
Experiments with a new algorithm for converting ieee-754 binary64 numbers
...
into decimal.
FossilOrigin-Name: e923405e448385085224f9289991b303d86b02763535ea77d6fcee98ba6fc1f2
2023-06-30 18:35:43 +00:00
drh
48114d08cf
Completely unwind the enhanced precision sum() from [a915f15a916af698] so
...
as not to offend UBSAN and OSS-Fuzz.
FossilOrigin-Name: 85be05b66ef975f02a3e7b2984bcab97d9280c7f3b6ee1e16718de549f240d46
2023-06-30 14:01:09 +00:00
drh
60f41362cf
Make the sum() function less precise and slower in order to avoid
...
harmless signed integer overflow UBSAN warnings from OSS-Fuzz.
FossilOrigin-Name: 1be0646a2c352dbf03d2af87fd48b6f9edfd68666790ac6863144ac95f3e0621
2023-06-30 11:51:36 +00:00
drh
8fbb335d9f
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running
...
sum is accurate to about 100 bits.
FossilOrigin-Name: a915f15a916af698e0cef46c8b3e7ed11bda19349179d2d414073cd39c4cce24
2023-06-28 12:02:48 +00:00
drh
60783f47b2
Improved accuracy of floating-point conversion constants as suggested by
...
[forum:/info/598d32f6135c41c1|forum post 598d32f6135c41c1].
FossilOrigin-Name: 4943e8a1819e189747eefc414d02c0485e1620deff9cf92664295b21a8a9a83c
2023-06-28 11:46:28 +00:00
drh
12b198f1a2
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.
FossilOrigin-Name: 439fc00fee62b4db3751860485e21a99cae4fd1f5d911b2c08651a1466245ecc
2023-06-26 19:35:20 +00:00
larrybr
bc91738e66
Add a C-source spell-checking facility. make misspell (on Nix)
...
FossilOrigin-Name: 26c1bb4bd9e9f56613c3aa87407a7f562fd4ebde5bfd6dece02078001d9a45f8
2023-06-07 08:40:31 +00:00
drh
49d8e0ef97
Add support for hexadecimal integer literals in JSON.
...
FossilOrigin-Name: 85e00c9e68d0695592e8f72555ee133c096bfca5a860a8e21d1e0ef756705aaf
2023-04-27 18:28:10 +00:00
drh
e61aa230ce
Attempt to suppress harmless compiler warnings reported by
...
[forum:/forumpost/fc98845c06|forum post fc98845c06].
FossilOrigin-Name: f6e6c5f94cef83645288568a344a0ff64e4ef17b10fab28996567a94db0a002a
2023-04-19 12:08:46 +00:00
drh
6b507423a0
Small performance enhancement to integer-to-text conversion.
...
FossilOrigin-Name: cfb3dba9b015ce7a75857978bfd2540b4d5be985d9d2ec4a5842b3089ed3da60
2023-04-12 18:57:50 +00:00
drh
2fc9dc9330
Fix sqlite3_prepare() so that it only invokes the progress handler on every
...
N-th call to sqlite3ProgressCheck(), where N is the progress handler step
count. Also fix faulty asserts exposed by the ability to interrupt in the
middle of sqlite3_prepare().
FossilOrigin-Name: 05461651599bb490ac6cfd893645dabab9cccedc6adcce15aee2487b2ea6027a
2023-01-12 19:51:49 +00:00
drh
f84cbd1676
Attempt to provide a mechanism to do early termination of long-running
...
statement preparation by invoking the progress handler at strategic points
during sqlite3_parpare(). This experiment shows that sqlite3_prepare() might
leave the resulting prepared statement uninitialized following an interrupt.
FossilOrigin-Name: 79636f2d80aee70832913a78933da2a7e30cc037810b93903ebbc1925ea93fef
2023-01-12 13:25:48 +00:00
drh
fbde3f50bf
Avoid an unnecessary call to strlen() in the sqlite3VdbeMemStringify() routine,
...
for a performance increase and size reduction.
FossilOrigin-Name: 284382d37850f469dc4bf3ab8efd2f20971554e897f1ba3e94d3f2f0c35d97d0
2023-01-03 18:51:18 +00:00
dan
231ff4b027
Enhance the sqlite3_stmt_scanstatus() API and add sqlite3_stmt_scanstatus_v2(). For creation of easier to read query performance reports.
...
FossilOrigin-Name: 55800833645739efeddcacef464c623931cb6aeb43f4219b4e4faf473c25c8bb
2022-12-02 20:32:22 +00:00
drh
7741f3457a
Change the handling of hwtime.h to make it easier to compile performance
...
measurement builds that make use of hwtime.h. This should not affect
productions builds.
FossilOrigin-Name: f64a224244743ab121371abd516fccbfc93c110e0952211764bd1b217e792c1b
2022-11-29 17:52:04 +00:00