Commit Graph

25674 Commits

Author SHA1 Message Date
drh 4da32bb3c1 Fix an error in the OP_SeekScan opcode.
FossilOrigin-Name: b95e69330eca0f4561a5a448c43643a83329db1daa48b568b69d0fdb55bbc9ec
2023-03-24 21:27:37 +00:00
drh 9cf654c8e0 Increase the version number to 3.41.3.
FossilOrigin-Name: 9a19c6ce80a73f9b11bbd9e5e82f31fec6df91caa900bf67d201087443fe876d
2023-03-24 20:41:33 +00:00
drh e48c167dbb Fix the handling of indexed expressions in an outer query that appear as
corelated values inside an aggregate function within a subquery.

FossilOrigin-Name: 76b90f267c5cc676d9ba97caa0f664e75af8b21c8eb574ec0c1f11e4deedb49e
2023-03-24 20:39:13 +00:00
drh c83270465c Fix byte-code register allocation in ANALYZE for STAT4 when there multiple
indexes with differing numbers of columns.

FossilOrigin-Name: 13c8c60bb6b4447b52895dd63a4dffafa23b0aa05f37ce8d78896b638b385db6
2023-03-24 17:01:29 +00:00
drh e05bb84ac7 The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and
at [168fa2fb22b8c1ad] are incorrect.  Back them out and replace them with
a simple NEVER() macro.  Error reported by
[forum:/forumpost/dc4854437b|forum post dc4854437b].

FossilOrigin-Name: 76e683c5f25fe0471215e833a6f4f6e50890bbdd1ca639035754e9a2831dd406
2023-03-23 10:58:19 +00:00
drh e671c4fbc0 Version 3.41.2
FossilOrigin-Name: 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da
version-3.41.2
2023-03-22 11:56:21 +00:00
drh 8d71d50391 Increment the version number in the TEA configure script to 3.41.2.
FossilOrigin-Name: 2bb74aa501b7245f4e4d789630fe8c5265c7644ce223404fe7360d5a1fe8cd76
2023-03-22 11:12:28 +00:00
drh 4edd69b97b Fix a valgrind error and potential buffer overread when handling a corrupt database.
FossilOrigin-Name: cb8b34fa1aa8bbe756ad9cfd864f93f8b5a78948b2622aaa230d4db18b846a4f
2023-03-21 11:27:41 +00:00
drh 4e6047a5ee Fix a problem causing a cursor to retain an out-of-date cell-info cache when processing a DISTINCT query on values that are identical according to their collation sequence, but different on disk.
FossilOrigin-Name: b02811847cbb9c80ba886d3e84fc6a8048cde5c932405f50416baf6e0cbd78e9
2023-03-20 15:50:40 +00:00
drh 0979ae5180 Fix problems with the sqlite3_error_offset() function and its use in the CLI.
FossilOrigin-Name: d5cd6c885b71b0939f5832fbb63bf800ae03dbbc2dc0f7beab1270133d414c54
2023-03-20 01:59:58 +00:00
drh 3722998e13 Increase the size of ref-count values in the pager layer to 64-bits, to avoid
any reasonable possiblity of overflowing the counters.

FossilOrigin-Name: 824611ad33011bda676ce6c9c3cb2b46442fc0a48c458bdc86dd960623c1e945
2023-03-19 21:53:35 +00:00
drh 7f990bd3f8 Avoid a buffer overread in fts3 that could occur when processing a corrupt record.
FossilOrigin-Name: 1f91fe4bfc81bf66f9c8f0aebe0acdbac89e2c20d90a5eb4ea0a3c560b82a9cd
2023-03-19 10:30:02 +00:00
dan 32ccccf7ab Fix a potential buffer overread in the recovery extension.
FossilOrigin-Name: 78836713c965066cb9c1cc732a9cecb1d74a25f37775a01c088393881e4fd8d6
2023-03-17 14:22:45 +00:00
drh fd74c4b2d9 Ensure that an error does not delete the Table object out from under
the xConstruct method of a virtual table.
dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d

FossilOrigin-Name: c5bd0ea3b5b2f3ed8e971c5fd6e85e8f06d8055d74df65612c3794138306e6ba
2023-03-17 12:25:10 +00:00
drh d5a1e1967f Increase the version number to 3.41.2
FossilOrigin-Name: 122f12f5363245a4566dc15ce81ecac5fce70ce9aa478408483f88bd86a8e6bc
2023-03-17 10:30:05 +00:00
drh 2d4139dda5 Fix assert() statements that would (incorrectly) fire if an IF NOT EXISTS
trigger that already exists contained two or more RETURNING clauses.

FossilOrigin-Name: 9b43b34d81adb1a8fd5e087f6c61387ed3a2e3e604418e295906d220f5cc5254
2023-03-17 00:10:06 +00:00
drh fe5751815b Correctly handle SELECT DISTINCT ... ORDER BY when all of the result set terms
are constant and there are more result set terms than ORDER BY terms.

FossilOrigin-Name: 097512b60498803570fe80d0403963ed2b5cecbee7156af355418ff9f1851d60
2023-03-16 21:05:59 +00:00
drh a0e71193e5 Do not use the one-pass optimization on an UPDATE if there is a subquery
in the WHERE clause, since if the subquery is hidden behind a short-circuit
operator, the subquery might not be evaluated until after one or more rows
have been updated.

FossilOrigin-Name: b5d8a9a6a58b4eb81a663192f578e0fbed72e8155bc7e1100ece04e8394a1984
2023-03-16 10:21:52 +00:00
drh 9f773bfde6 Remove a NEVER() from btreeNext().
FossilOrigin-Name: 40623f5ab07481179f1efd5d377555c8d78bf0706a16212c0f6b954c17736a5c
2023-03-16 09:16:31 +00:00
drh 11e8ff65b5 Fix a broken assert() in the recovery extension.
FossilOrigin-Name: 048711e49002e59cbaf51079403a3f37abaa7d3a04e0cb20de4aed2d56c0e837
2023-03-16 09:12:09 +00:00
drh 1a7d1ab06e Disallow the one-pass optimization for DELETE if the WHERE clause contains
a subquery.

FossilOrigin-Name: 25e1831885e8de370482a1e9f664f1590fa49995048fb16e1f948acd2a29c3e3
2023-03-15 18:05:02 +00:00
drh 73dd2b94e1 Fix Bloom filters on an expression index.
FossilOrigin-Name: 11e0256b8c6f29bd2e60a0820f740e9927112bf6a0814751b7a73896298b4826
2023-03-14 20:16:48 +00:00
drh 88894f2b5f The cherry-pick merge at [371838562a675c1b] caused a performance regression
for some queries, which is here fixed.

FossilOrigin-Name: 6d6d95fcedbc8758ab284d3014ae4a97af6247003bb3d0a7056f2e6bffa6cae4
2023-03-11 23:29:34 +00:00
drh cd0b19a37f Version 3.41.1
FossilOrigin-Name: 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff
version-3.41.1
2023-03-10 12:13:52 +00:00
drh 10e44bf373 In the Bloom filter optimization, hash all strings and blobs into the same
value, because we do not know if two different strings might compare equal
even if they have different byte sequences, due to collating functions.
Formerly, the hash of a string or blob was just its length.  This could
all be improved.

FossilOrigin-Name: cc8a0ee40cfc83ab42a0ff452de0a53fe17784aefb944ea7ac2cb078a8310730
2023-03-09 16:04:34 +00:00
dan b08004d947 Fix countofview.test so that it works with SQLITE_OMIT_PROGRESS_CALLBACK builds.
FossilOrigin-Name: d55a7742c9447eba20a7fe252fb3edcabba3793030a55976d5a5e6c65bce7706
2023-03-09 15:08:56 +00:00
drh 322b844815 Update the version number to 3.41.1
FossilOrigin-Name: e4e2e64725a196ee4f287649db33f49fd7329c95cef3ce743cd177c998a6a343
2023-03-09 14:14:18 +00:00
drh da1b094d95 Merge count-of-view optimization fixes from trunk. But count-of-view is
still off by default for this branch.

FossilOrigin-Name: cbbe8986ea26e78a7c5b122170cb5bf3f275f8e3a2941017f9ef11d7f3864256
2023-03-09 13:58:49 +00:00
drh cc4f0f678d Fix a possible NULL pointer dereference due to the sqlite3_interrupt()
enhancement in the 3.41.0 release.

FossilOrigin-Name: 66d24a220e3455a183b61490f42869520744cb3990e13f3ded92f1b6a7e248ce
2023-03-09 01:35:52 +00:00
drh 86ac593b84 Keep the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". The use of FLEXNUM only occurs on compound queries.
FossilOrigin-Name: dc1033af4bf707095032f66d7a8ab63204f38bae244fab16a2bc870840d5bffd
2023-03-08 14:37:04 +00:00
drh fe8d2d2497 Fix an assertion fault added by [65ffee234787213c].
FossilOrigin-Name: d00e68baf73238d2f91df6b19525c91539a7fe26406516cbacfff113e79e26ea
2023-03-08 00:04:47 +00:00
drh ec1533e366 Cherry-pick the agg-with-indexed-expr optimization fix from trunk.
FossilOrigin-Name: b2ad89d3f0fe5c7582d97e65770eb93986ba8d4b031aafb04f86160383b47aab
2023-03-04 15:49:33 +00:00
drh 9ebf799d5b Do not use an expression index on a generated column if generated column has the wrong affinity.
FossilOrigin-Name: 65ffee234787213ca3b12afde1b5ed7ae536366c30e984b14c0975da0c57917d
2023-03-03 19:47:09 +00:00
drh 5a7afccd51 Enhance PRAGMA integrity_check so that it can detect when there are extra
bytes at the end of an index record, which might cause OP_IdxRowid to
malfunction.

FossilOrigin-Name: c143f08713ec5dcc7609804f1fa0d795005c7ebd265b73e42342584d759eae01
2023-03-03 18:47:29 +00:00
drh 74273c4369 When it is known when preparing a statement that X cannot be NULL, transform the expression (X IS NULL) to integer value 1 instead of 'true'. This is because under some circumstances, "Y IS TRUE" may not be equivalent to "Y IS 1".
FossilOrigin-Name: 0fc7f7c2a90ce9bc3462478441b4e628c90e5adff0d461e6cc3521371b7f1f08
2023-03-03 17:11:15 +00:00
drh 7a83522677 When flattening the right operand of a LEFT JOIN,
ensure that the OP_IfNullRow opcode does not
NULL-out a subquery result that was computed within OP_Once.

FossilOrigin-Name: c80b262c9dbde80c51872f36f9c4d406eba1c3f34468d36d5cb7084b1720ee5c
2023-03-02 14:09:11 +00:00
drh 843c71d748 When flattening a view that is the right operand of a LEFT JOIN
always insert the TK_IF_NULL_ROW expression nodes, even for TK_COLUMN
expressions, as the TK_COLUMN might be a column from an outer query
and hence still need to be NULLed out.

FossilOrigin-Name: 371838562a675c1bdd9c80250230eb87ac0e5e135cc39abbdbe1f8b1b8149445
2023-03-01 20:44:34 +00:00
drh cbfa2269c4 Make sure subtypes do not cross a subquery
boundary even if the function that returned the value with a subtype is
buried down inside a larger expression.

FossilOrigin-Name: 9dc460318d98308f51e31df216872ff96ece67c86f50c3fd11bf2a3df112afdd
2023-03-01 15:28:34 +00:00
drh 0a64b581dd When a table-valued function appears as the right table of a RIGHT JOIN,
the argument constraints on the table-valued function should be considered
part of the ON clause of the RIGHT JOIN.

FossilOrigin-Name: d225d077c4fcc526e70d59018479bba723d464cac5ac805eeeebd7d2a48cedcf
2023-02-26 21:09:45 +00:00
drh 72e2aa5096 Provide -DHAVE_LOG2=0 and -DHAVE_LOG10=0 compile-time options for use on systems
that lack the log2() and log10() standard math library routines, to cause
SQLite to substitute its own alternatives.

FossilOrigin-Name: ff3362ab53752de10bd95a16804ce3ef31edd8f0cb3099841c3e4ffc1d79d64d
2023-02-23 17:12:07 +00:00
drh 3b832a1a29 Version 3.41.0
FossilOrigin-Name: 05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d
version-3.41.0
2023-02-21 18:09:37 +00:00
drh b5726a76f7 Disable DQS by default in the MSVC makefile for the amalgamation tarball.
FossilOrigin-Name: 409a19145e9558686acab730b94c6d53691b6d0efcea1e9239fc7e5863586a85
2023-02-21 13:28:49 +00:00
drh 61f0a03492 Yet another comment typo fix. No changes to working code.
FossilOrigin-Name: cdbdc8013fcfa8ce1bd4f5521c8d98afc53b9c577d43e5e6d0d1e15c789b910f
2023-02-21 12:42:25 +00:00
drh 0c30eaec99 Fix a minor typo in a comment. No changes to working code.
FossilOrigin-Name: 7981671d1449b3fc6eb214deb558d91b87dc4fa6e38e24606625a146cc71664a
2023-02-21 12:34:00 +00:00
drh 6e2b2f3073 Fix formatting and improved documentation on the various sqlite3_file_control()
opcodes.  Other minor documentation changes.  No changes to working code.

FossilOrigin-Name: 13280f720a4ef5a1f7f2a2fbe72f374d3a2e12be9bc0c50f7fce50d0cd28a67f
2023-02-21 12:30:18 +00:00
drh 3eeace23f5 Update the TEA version number to 3.41.0
FossilOrigin-Name: b450a920c0c59affd105616e999205cb9d2b25a79f8a7f7f05610ddaac0f770f
2023-02-20 19:43:01 +00:00
drh ffe9bfd8e9 Fix an incorrect #ifdef in the CLI.
FossilOrigin-Name: 3c4d29cf227511bf218ef620d497dc72c708dcc819971b34c7629f3ed11803fb
2023-02-20 16:55:58 +00:00
drh e17cac189f Fix a harmless compiler warning.
FossilOrigin-Name: b2534d8de5051a3516f4b9ee5a4b99e1dcf455e9af88c60815d2c2a479fc8566
2023-02-19 19:16:51 +00:00
drh 1603f7edee Fix stale requirement marks and fix a typo in the documentation for
sqlite3_preupdate_hook().

FossilOrigin-Name: 655991f5d9afdd3281049eb430921046e0ba90eef215020c2fb149adc0d3c4c5
2023-02-18 20:31:26 +00:00
drh 3c7e90b894 Fix a harmless UBSAN warning in debugging code of the new unhex() function.
FossilOrigin-Name: 315574d5cbe5c805ff2163052d986b054985984fb45bfb064d1a7b39a22b90eb
2023-02-18 15:50:23 +00:00