]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 18 Jul 2023 15:06:58 +0000 (15:06 +0000)]
Experimental (untested, non-working) changes that try reduce the
number of reprepares generated by sqlite3_stmt_explain(). I think I see
an easier way to do this now, so I'm parking this experiment on a branch
to pursue the new idea.
FossilOrigin-Name:
c2fba6a6322bff1037c05bcc184b292faf1e9e7d778edc176b0bf9597a36d8f8
drh [Sat, 15 Jul 2023 16:48:14 +0000 (16:48 +0000)]
Add the experimental sqlite3_stmt_explain(S,E) interface.
FossilOrigin-Name:
5683743ddf0bb051f2fe5d137cc18407e000e77e9faa9010a22e3134b575638b
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
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
drh [Tue, 11 Jul 2023 19:54:17 +0000 (19:54 +0000)]
Reduce divergence between branches: trunk and wal-shm-exceptions.
FossilOrigin-Name:
d38ed6b1fc6b572997d520c36f256c11404fb1bd5f28acab07466bfc96554a8f
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
drh [Mon, 26 Jun 2023 19:57:23 +0000 (19:57 +0000)]
Simple test cases for the enhanced SUM() function.
FossilOrigin-Name:
c66ef2440e4e6c7aa17b50e5a29e543713ccab69aa0a415bac29b35b6116504a
drh [Mon, 26 Jun 2023 19:35:20 +0000 (19:35 +0000)]
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
larrybr [Mon, 26 Jun 2023 17:08:08 +0000 (17:08 +0000)]
Fix CLI .sha3sum error message for keyword identifiers, reported in [forum:/forumpost/
7cbe081746dd |forum post
7cbe081746dd ].
FossilOrigin-Name:
9d7813ddcf67f1256e7331c5f390cb122b3f7e35cf46e0b33b610216a5396a00
stephan [Mon, 26 Jun 2023 07:05:05 +0000 (07:05 +0000)]
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject.
FossilOrigin-Name:
d4e66dfc2e87112fa73a9c64db358429d88fb2ab3a08908b0eb655f6ed42f94b
drh [Sun, 25 Jun 2023 20:23:51 +0000 (20:23 +0000)]
drh [Fri, 23 Jun 2023 11:10:13 +0000 (11:10 +0000)]
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.
FossilOrigin-Name:
fa5f77862c0fe0189aa4246a1e55bb7c537c28c436ec10b75f5fa141e5e4aff0
drh [Thu, 22 Jun 2023 21:19:37 +0000 (21:19 +0000)]
Optimize the argument to the octet_length() function so that it does not
attempt to read content from disk.
FossilOrigin-Name:
8b8ea4e3f52d96cc217bd1fb27ca4a83489ef1f250756ed2f790d1b0ee529a3a
drh [Thu, 22 Jun 2023 15:26:52 +0000 (15:26 +0000)]
drh [Thu, 22 Jun 2023 13:01:02 +0000 (13:01 +0000)]
Merge recent trunk enhancements into the octet_length branch.
FossilOrigin-Name:
d35c214811aac7dec0000ca2aa77231f74a7963dd0c53cf25a65ade5ef0f8dc0
drh [Thu, 22 Jun 2023 01:03:39 +0000 (01:03 +0000)]
Simplification to the getAndInitPage() routine that results in improved
performance.
FossilOrigin-Name:
2e9734c2335d8c06fedc9f4cca02baaf326f7fa276bd464f3214f383715a48d6
drh [Wed, 21 Jun 2023 21:47:09 +0000 (21:47 +0000)]
Improved comment on the getAndInitPage() in btree.c. No code changes.
FossilOrigin-Name:
dc468cfdb825083b3a4b6cb95c913961e9312e22103c5a0cd923b75c83c65e13
drh [Wed, 21 Jun 2023 14:11:25 +0000 (14:11 +0000)]
drh [Tue, 20 Jun 2023 17:45:19 +0000 (17:45 +0000)]
Omit unnecessary calls to table locking routines in the common case when
there is no shared cache.
FossilOrigin-Name:
f94f3021cde1d46373ee8fc8e5028d7507a937240c59cf0d0d19ab22acbd3c41
drh [Tue, 20 Jun 2023 16:26:52 +0000 (16:26 +0000)]
Avoid unnecessary calls to sqlite3DeleteTable() with NULL pointers.
FossilOrigin-Name:
4a35f391995a88757d7b46f52bf241f523ee2a6a7b6726df00cddaec8cee7080
drh [Tue, 20 Jun 2023 15:48:24 +0000 (15:48 +0000)]
Avoid unnecessary calls to sqlite3CodeRowTrigger().
FossilOrigin-Name:
27c174dbd0e7ba029d13fb005fc950ac99eb6aee31903ee3acfc88c262d13f6a
drh [Tue, 20 Jun 2023 11:46:32 +0000 (11:46 +0000)]
Performance optimization in sqlite3VdbeAddOp4Int().
FossilOrigin-Name:
456a24324bd42e1e3384ffa8474b7d0760b27df95be0e92ddce5eb87339f6272
drh [Mon, 19 Jun 2023 23:27:22 +0000 (23:27 +0000)]
Avoid unnecessary NULL pointer checks on calls to sqlite3WalkExpr().
FossilOrigin-Name:
73d86a12fb068456a884c030fddd87020d6ec9d56376de541cf082b2104174d3
drh [Mon, 19 Jun 2023 20:54:49 +0000 (20:54 +0000)]
Small performance improvement and size reduction by recognizing that no
SQL keywords have less than 2 characters.
FossilOrigin-Name:
6b3d25b7982623ab4b25161aff9ab44778e136069043ab425543597c42c98ae5
drh [Mon, 19 Jun 2023 13:09:16 +0000 (13:09 +0000)]
Fix large integer constants so that they work on older C compilers.
FossilOrigin-Name:
3c94f87806a8b408d8204fc7deec16d01c085ee199ff21a1f20b6346ce816cfe
drh [Sat, 17 Jun 2023 15:42:44 +0000 (15:42 +0000)]
Fix harmless compiler warnings that show up on 32-bit RaspberryPI builds.
FossilOrigin-Name:
bc4d20f362925e4ce5c79f0d7a27a8e9bbac92525bd4cea2ae983798e3f8c37d
drh [Sat, 17 Jun 2023 15:22:00 +0000 (15:22 +0000)]
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.
FossilOrigin-Name:
e46a00ae880dd12df090105498a85017d1367f88bf27d86f0b0200cf0536a906
drh [Fri, 16 Jun 2023 14:39:21 +0000 (14:39 +0000)]
Address various harmless compiler warnings from
[forum:/forumpost/
d526da8ee4 |forum post
d526da8ee4 ].
FossilOrigin-Name:
365caf2f97e8f15842f52536e8d05d359e9d6e863182e020ce14a9a9f27ee057
drh [Fri, 16 Jun 2023 11:05:49 +0000 (11:05 +0000)]
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.
FossilOrigin-Name:
da1252b29852191eccbea98e0314408c75bb83a51f9d68d589705d4971a23850