]>
git.ipfire.org Git - thirdparty/sqlite.git/log
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
drh [Thu, 15 Jun 2023 16:02:19 +0000 (16:02 +0000)]
drh [Thu, 15 Jun 2023 15:43:08 +0000 (15:43 +0000)]
drh [Wed, 14 Jun 2023 12:19:07 +0000 (12:19 +0000)]
Work around what appears to be a GCC 32-bit optimization problem in the
computeHMS() routine of the date/time logic.
FossilOrigin-Name:
aebdbcbebff1319dd00551c9fb9ad4b08859f10e87f097295d564ae1ba188c02
drh [Tue, 13 Jun 2023 18:10:52 +0000 (18:10 +0000)]
Improved sqlite3_error_offset() values for bare column errors on '*' and
'table.*' expressions in SELECT statements.
FossilOrigin-Name:
118fe600876686273f85d0a080a21267e83c11826365f3220336b1bd39562518
drh [Tue, 13 Jun 2023 16:55:24 +0000 (16:55 +0000)]
Extended the time-diff format so that it can have a 5-digit year. This enables
time differences to span the full range of dates supported by SQLite. Also
fix some inaccuracies in the computation of time differences and add new
test cases.
FossilOrigin-Name:
d57ddbf4eeeb3ccfe31871f098045b9e58634153a3c3030f597cb58c1177218a
drh [Mon, 12 Jun 2023 18:22:34 +0000 (18:22 +0000)]
Initialize a local variable in FTS3 to avoid a GCC compiler warning.
FossilOrigin-Name:
7ec4ab327decd6a5ee5e6a53f1489e17e0cdbb297945f9acc532b47d052eb7a9
dan [Mon, 12 Jun 2023 13:49:37 +0000 (13:49 +0000)]
Fix a problem causing bloom filters to be used less efficiently than they might be. Problem reported by forum post [forum:/info/
06c3f01da6 |
06c3f01da6 ].
FossilOrigin-Name:
56d9bb7aa63043f5db4a1e5e8eefe46762dba433145807c6e27a8316f1d03d7a
drh [Mon, 12 Jun 2023 13:31:20 +0000 (13:31 +0000)]
Check-in [
70e12efd1b189560 ] left a path through lockBtree() that failed to
set the BTS_PAGESIZE_FIXED flag. That omission is fixed by this check-in.
dbsqlfuzz
02c9ab74eb0619c9ae3b894ce157fae1d7f94645
FossilOrigin-Name:
30dcc872eb1c9549708009c86357826c4f15ffa17e379dab5cd4aec596643728
dan [Mon, 12 Jun 2023 11:06:57 +0000 (11:06 +0000)]
Fix a buffer over-read that could occur as part of an fts5 secure-delete operation on a database containing corrupt fts5 records.
FossilOrigin-Name:
a35c50eca907d0cf373b7962c359aebfce8ac7c34ce81edeb99122d4fb5804f7
drh [Sun, 11 Jun 2023 21:58:20 +0000 (21:58 +0000)]
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior
to being reused, to prevent a memory leak associated with
the custom xDel string value destructor.
dbsqlfuzz
65209ab5d5730e4fd14fff9d024325a77239036e .
FossilOrigin-Name:
88be7075cdc7000d3a1e84e49064cf8c28fc7caca9c464f44a83265223961b51
drh [Sat, 10 Jun 2023 19:33:02 +0000 (19:33 +0000)]
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there
are no errors and the page size has been set.
FossilOrigin-Name:
70e12efd1b189560e07f59db03a20b8c1ab19224aae4fc3d7c0bdfd2568064ea
drh [Sat, 10 Jun 2023 18:40:20 +0000 (18:40 +0000)]
Fix an assert that can go bad if STAT4 content is corrupt. This is a
follow-up to the previous check-in.
FossilOrigin-Name:
ac1d3860af4eb30e4a7444b01d7b5afc91a4b1f5e3fe5414a491c6edc7ff1631
drh [Sat, 10 Jun 2023 17:05:05 +0000 (17:05 +0000)]
drh [Sat, 10 Jun 2023 10:37:49 +0000 (10:37 +0000)]
Enhance fuzzcheck so that it understand the sqlite3_db_config() and
optimization settings from unused bits in the database header, which
dbsqlfuzz is now using.
FossilOrigin-Name:
918708c6dea5bffab4bb1c15d655ac7356bae97b84def905479dfcf491db6c5f
drh [Fri, 9 Jun 2023 15:54:18 +0000 (15:54 +0000)]
Simplify a memcpy() in defragmentPage(). It now might copy more content than
is strictly necessary, but runs faster and uses less code space. Possible
reasons for the improved performance:
(1) the copy is now always 8-byte aligned,
(2) fewer intermediate results are required which means less register
pressure which helps the compiler to optimize the subroutine.
FossilOrigin-Name:
6e5607ae4d872954483a8d7a5c866aa41e4af70fae9652fb7eb211b316ab724d
dan [Thu, 8 Jun 2023 20:49:25 +0000 (20:49 +0000)]
Remove SQLITE_EXTENSION_INIT macros from dbdata.c.
FossilOrigin-Name:
106ec745766ac59131f975d5ab5487c8a24b9c3be1766411c018b42c6ae4672a
drh [Thu, 8 Jun 2023 16:19:21 +0000 (16:19 +0000)]
Improvements to the src-verify.c utility program so that it continues to
muddle through a corrupt manifest file, making the most sense of it that it
can and reporting "manifest" has having changed at the end.
FossilOrigin-Name:
157b5d25e0c99eabfa3c32cb867fe7e3c05031c12354f734d2cd8a4062b9439c
drh [Thu, 8 Jun 2023 15:30:10 +0000 (15:30 +0000)]
Fix the amagamation generator so that it works one a clean source tree.
FossilOrigin-Name:
f502610d03a1362eea936129abd03390835b7e47ba25e6799b2e7880de540640
drh [Thu, 8 Jun 2023 15:27:35 +0000 (15:27 +0000)]
Include source provenance in the header comment of the amalgamation.
FossilOrigin-Name:
e3eb5af9050aae1db6887d17a560a24e4ca58f232ad7ac7c283c861ea4944f0b
drh [Thu, 8 Jun 2023 12:52:28 +0000 (12:52 +0000)]
Enhance Lemon so that it remembers which -D command-line options are actually
used in the grammar and includes a list of all such options in the header
of the generated output file.
FossilOrigin-Name:
c47a4dbd24b8277c57b7a83a8c0aeac2bc8f6ab75d1b65ba5e1fa83d1868d95f
larrybr [Wed, 7 Jun 2023 23:10:40 +0000 (23:10 +0000)]
Add spell-checking for all comments in main sources. (./src/ .c .h .in) make target "misspell" tells of misspelled words for which no exceptions have been put into tool/custom.txt .
FossilOrigin-Name:
5332abf0ad8ef42c44e9dd7045d017bb8fc9a0262a89ababa3e2c41788a6cdb8
larrybr [Wed, 7 Jun 2023 17:03:22 +0000 (17:03 +0000)]
Fix straggler misspellings and tidy the custom dictionary. Also include pickups from [forum:/info/
c61fb09afd |forum post
c61fb09afd ].
FossilOrigin-Name:
8c291d99946eb32b20b743921202f9c7cfb716268ff526817b27adbb7942e40b
drh [Wed, 7 Jun 2023 15:00:54 +0000 (15:00 +0000)]
Remove additional traces of FTS1 and FTS2 that were missed by [
2bb50d5aedef0fd2 ]
FossilOrigin-Name:
9a12bac5d24c7a8364d2127fd12c3409a53ef83e408d10f344ddd311cdba98af
drh [Wed, 7 Jun 2023 14:47:29 +0000 (14:47 +0000)]
Remove unused, legacy shell script "mkso.sh" from the root of the repo.
FossilOrigin-Name:
57f75e48690bdeb9b6bb3f46eee39021e3eb8cc0c488d2584177baa11ac984e5
larrybr [Wed, 7 Jun 2023 08:40:31 +0000 (08:40 +0000)]
Add a C-source spell-checking facility. make misspell (on Nix)
FossilOrigin-Name:
26c1bb4bd9e9f56613c3aa87407a7f562fd4ebde5bfd6dece02078001d9a45f8
drh [Mon, 5 Jun 2023 17:12:33 +0000 (17:12 +0000)]
drh [Mon, 5 Jun 2023 13:57:37 +0000 (13:57 +0000)]
Update the README.md file to talk about the verify-source makefile target.
FossilOrigin-Name:
aa8e79e16abf028d50370ae13b6c952a7b7f42985125bc8e7f51b20a10bfc336
stephan [Mon, 5 Jun 2023 11:30:50 +0000 (11:30 +0000)]
Remove extraneous console trace output from previous check-in.
FossilOrigin-Name:
c9f6e36d59fc8bf2bcef6fc14ff2e9ad3dfd972de94d4a71ff3f56134810a8ef
stephan [Mon, 5 Jun 2023 11:26:59 +0000 (11:26 +0000)]
Add a JS test confirming that binding of statement parameters in a subquery works.
FossilOrigin-Name:
5dfaf0bce83c3e15ad605e3f07291ce219f1a2726ce77be27779897088ee13d5
drh [Mon, 5 Jun 2023 01:05:46 +0000 (01:05 +0000)]
Generalize the src-verify.c utility program and provide additional documentation
in the header comment.
FossilOrigin-Name:
7ed84046ef0c2c64031cac3a3a6b43aac3ac40aeb36838d8d046493f2d5ed122
mistachkin [Mon, 5 Jun 2023 00:57:38 +0000 (00:57 +0000)]
Minor cosmetic normalizations for the MSVC makefile.
FossilOrigin-Name:
c9fda8d6dba36841415d0f445b4081b051bfaa70428b605ac0b9ca4ae98f7d49
drh [Sun, 4 Jun 2023 22:59:20 +0000 (22:59 +0000)]
Fix harmless compiler warnings in tool/src-verify.c
FossilOrigin-Name:
0e79ee97b18792dba9213bd9961f53e2bae765ac92df7963703d08857da74fd1
drh [Sun, 4 Jun 2023 22:56:31 +0000 (22:56 +0000)]
Enhancement to tool/src-verify.c to also check the manifest.uuid file.
FossilOrigin-Name:
a39a569482a35610fdaa2fdfc88491d8b456dfedb4786c817e0502eb3e3a5563
drh [Sun, 4 Jun 2023 22:41:52 +0000 (22:41 +0000)]
Add a prototype implementation for the "verify-source" Makefile target.
FossilOrigin-Name:
ed876ff6a1a6a2d555f32b96eb78d95eaf8428ee189f968c43f0829a3065bfa7
drh [Sat, 3 Jun 2023 11:22:30 +0000 (11:22 +0000)]
Prototype implementation of the octet_length() SQL function.
FossilOrigin-Name:
2db989c8635f7e89b3ea58d1fde94787fced039ac1a118d9b6362811eda73f87
larrybr [Fri, 2 Jun 2023 21:31:15 +0000 (21:31 +0000)]
Clarify sqlite3_is_interrupted() return. No code change.
FossilOrigin-Name:
b6c2d3d203100a34335aeba23a8fb82a13297b65eed494d5044ade3bed683bc3
drh [Fri, 2 Jun 2023 18:05:54 +0000 (18:05 +0000)]
Restore the LEFT JOIN strength reduction that was partially lost in
[
d747afda5683ca5f ] when strength reduction was generalized to all OUTER JOINs.
FossilOrigin-Name:
2d962b84dd8ac2d0968f0283f8f082c1c2a7a1f99b59053b2ad8f58745396447
larrybr [Fri, 2 Jun 2023 13:31:12 +0000 (13:31 +0000)]
Do that last CLI fix more simply, using established means.
FossilOrigin-Name:
a1823b297616bc2bd64eda9df4850fb460d8da8959ae3728195db896d1f89e7b
larrybr [Fri, 2 Jun 2023 12:56:32 +0000 (12:56 +0000)]
Fix CLI fault on missing -nonce reported by [forum:/info/
f8c14a1134 |forum post
f8c14a1134 ].
FossilOrigin-Name:
cd24178bbaad4a1dafc3848e7d74240f90030160b5c43c93e1e0e11b073c2df5
drh [Fri, 2 Jun 2023 00:03:28 +0000 (00:03 +0000)]
Fix the OUTER JOIN strength reduction theorem prover's handling of the CASE
operator.
FossilOrigin-Name:
73d7b14b1713d93c4ae07995e9aa6485cbad90bd6125584dbaeccb0cc9410ea3
drh [Thu, 1 Jun 2023 20:38:22 +0000 (20:38 +0000)]
Generalize the LEFT JOIN strength reduction optimization so that it works for
RIGHT and FULL JOIN as well. Rename it to the "OUTER JOIN strength reduction"
optimization.
FossilOrigin-Name:
d747afda5683ca5feb92866a14ccc4c5127d3378ece5cad2c3da819f2477b457
drh [Thu, 1 Jun 2023 16:40:28 +0000 (16:40 +0000)]
If the filename argument to sqlite3_load_extension() is an empty string, then
raise an error. It turns out that if dlopen() is called with an empty
filename, it tries to load the current executable. And then if the caller
requests some other function from the current executable, mischief can result.
FossilOrigin-Name:
d01688554715eb4aaa1b1fd1a6b660b84e930edb0e062156ecf5228ee81ca754
drh [Thu, 1 Jun 2023 00:28:11 +0000 (00:28 +0000)]
drh [Thu, 1 Jun 2023 00:01:20 +0000 (00:01 +0000)]
Fix the LEFT JOIN strength reduction for IN operators in the WHERE clause.
Further simplifications and refinement of the algorithm.
FossilOrigin-Name:
96c72dde79d4069f6c2f81467a35b617633f86f7a7dcafbda991affdaa1f8537
drh [Wed, 31 May 2023 18:52:46 +0000 (18:52 +0000)]
Add a comment to explain why both sides of an AND must be non-null-row in order
for the overall expression to be non-null-row. No code changes.
FossilOrigin-Name:
8396032ce14a75f408f0a75bcb36a6504d5188f20886e275746a2c336a74296f