]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Wed, 28 Sep 2022 17:10:23 +0000 (17:10 +0000)]
Prototype implementation of "PRAGMA reset_database". This pragma differs from
SQLITE_DBCONFIG_RESET_DATABASE in that the pragma only works if the database
is reasonably well-formed, whereas the dbconfig works regardless.
FossilOrigin-Name:
cf0999d4f8fd120c4796240600cd42fcc8baa056efad432d0dae7da372023787
drh [Tue, 27 Sep 2022 16:35:06 +0000 (16:35 +0000)]
Provide the SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the
maximum memory allocation size.
FossilOrigin-Name:
584de6a996c78b8e41bdfcd05a8e2a3844664c6b4efedb5883c8b8af388462b5
drh [Tue, 27 Sep 2022 01:53:05 +0000 (01:53 +0000)]
Make the legacy FTS3 code more robust against integer overflow during
memory allocation.
FossilOrigin-Name:
5517bc50988b5339c2fd071b29de1b5ca03037b0b635c3b112cf7108fab54d5f
drh [Tue, 27 Sep 2022 00:56:45 +0000 (00:56 +0000)]
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the
statements within the trigger attempt to write on a shadow table.
FossilOrigin-Name:
3283bbd12a60f472ed03cb7c6209a605a3bf9f3d9083371e17840b56e8b3f559
drh [Wed, 21 Sep 2022 18:21:31 +0000 (18:21 +0000)]
Reduced and improved comments on the constraintCompatibleWithOuterJoin()
function.
FossilOrigin-Name:
38aaf26e082bd95df6b64df43e1772fe6e20c4eb71307dcd97559cac7f11f8f1
drh [Wed, 21 Sep 2022 09:54:41 +0000 (09:54 +0000)]
The RIGHT JOIN logic added to version 3.39.0 added a new restriction on the
query flattener which resulted in a performance regression for some queries,
as documented by [forum:/forumpost/
96b9e5709cf47cda |forum post
96b9e5709cf47cda ].
This change removes that restriction (thus restoring performance) and fixes the
problem that RIGHT JOIN was having in a different way.
FossilOrigin-Name:
501609eddf2a46d51e8cd56477a22d4df142a166e78fe4322c0db11d1eed6687
drh [Wed, 21 Sep 2022 00:16:59 +0000 (00:16 +0000)]
Break out the decision of whether or not a constraint term is usable by
an outer join into a subroutine: constraintCompatibleWithOuterJoin().
FossilOrigin-Name:
c7fbc9b0453050e2746af27e3a11e0c3701bef8c56da8e19173242c6ea3aff8b
drh [Tue, 20 Sep 2022 22:19:13 +0000 (22:19 +0000)]
Do not allow EP_InnerON terms to be used on a outer join.
FossilOrigin-Name:
f47aa745690c018800243bf76930b2499ff4537411c4e27b4b16ba3854cc2bf8
drh [Tue, 20 Sep 2022 21:07:52 +0000 (21:07 +0000)]
Add new test cases that (current) get an incorrect answer.
FossilOrigin-Name:
fe5c37736444e397ace387b761ec2491229785d7a437f3f60232aedf9d1f00ec
drh [Tue, 20 Sep 2022 19:45:04 +0000 (19:45 +0000)]
New test cases for query flattening when there are ON clauses and outer joins.
FossilOrigin-Name:
db55387b1972bc7bc6855bd3497af744a111e7d28d09893cd985fbb01be41bcc
drh [Tue, 20 Sep 2022 19:22:17 +0000 (19:22 +0000)]
Modify the OP_IfNotOpen opcode so that the jump is taken if the cursor is open
but was previously set to a NULL row using OP_NullRow.
FossilOrigin-Name:
1292d68caa7086610ddda343f3852e63de8da1eb66536ee4716b6529f5a31bc6
drh [Tue, 20 Sep 2022 18:18:00 +0000 (18:18 +0000)]
Remove code that has been previously commented out.
FossilOrigin-Name:
852b385a5de622aa32026824210d4bd23db52a4a8a697b83d22d6000edeba487
drh [Tue, 20 Sep 2022 17:43:40 +0000 (17:43 +0000)]
Merge the fuzzcheck fix from trunk into the flattener improvement branch.
FossilOrigin-Name:
930a8c1561d0d5dc70dc5378edac77f79ac59ab6569b561de3dfb02f160c38c5
drh [Tue, 20 Sep 2022 17:21:54 +0000 (17:21 +0000)]
Update the fuzz invariant checker to conform to the latest changes in
dbsqlfuzz.
FossilOrigin-Name:
8d8c124349d2a25200ace9a60d76751594b722468ad0c39d927a5d2c6e2464e0
drh [Tue, 20 Sep 2022 16:57:49 +0000 (16:57 +0000)]
Is the query flattener restriction 29 (do not allow both EP_InnerON and
EP_OuterON constraints on the same FROM clause term) really necessary? This
branch explores what happens if we omit that restriction. This is an effort
to address the performance regression reported by
[forum:/forumpost/
96b9e5709cf47cda |forum post
96b9e5709cf47cda ] that is caused
by flattener restriction 29.
FossilOrigin-Name:
19270577ad1d08c9e6e5f0600396b8a1ccda9df1e67a0df845aee6b60437f379
drh [Mon, 19 Sep 2022 19:25:15 +0000 (19:25 +0000)]
Clarify comments that describe query flattener restrictions associated with
outer joins. No code changes.
FossilOrigin-Name:
2647d73bb1876d01851f52cb3fd6af08a962ab336b6d51c160d27b1baf94f75f
drh [Mon, 19 Sep 2022 17:41:59 +0000 (17:41 +0000)]
Fix a minor comment typo. No changes to code or documentation.
FossilOrigin-Name:
8032db4ade66f70a102abb9d3a49e20620e204c45ad7a954a49d20403985bf07
drh [Sun, 18 Sep 2022 17:59:28 +0000 (17:59 +0000)]
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be
true. crash-
32d9312f145cdce41613573f6431d9a3e439e3d7
FossilOrigin-Name:
90403759e1cf30f7c11fa8170d6df59a0dd138e1de59d2b60bec7ba15d74f67c
drh [Mon, 12 Sep 2022 16:07:24 +0000 (16:07 +0000)]
New run-time options to the speed-check.sh script.
FossilOrigin-Name:
ff46bc9d2a844dde9dafa157114f4d9ee157205ca5c08ed9ee32f018de310e62
mistachkin [Fri, 9 Sep 2022 17:50:29 +0000 (17:50 +0000)]
Fix harmless compiler warning seen with MSVC.
FossilOrigin-Name:
73c4c68d3b4c16caf8281dabddd7365d24691e5ee2da89b1783eca66bfbd9280
drh [Wed, 7 Sep 2022 20:11:22 +0000 (20:11 +0000)]
Enhance an assert() to impose for tighter constraints on the operation of pcache.
FossilOrigin-Name:
42105eb43a916a7cd839fa6c582eaffaef17f50b23c3e05142400c379feb73c7
drh [Wed, 7 Sep 2022 19:28:18 +0000 (19:28 +0000)]
An improved technique for ensuring that the Rekey() operation does not
overwrite an existing page number. This approach does not change the
semantics of the underlying pluggable pcache and it is easier to prove
correct. This replaces the changes at
[
aadd38f99a3e5abc ] and [
81cff9f1955874aa ].
FossilOrigin-Name:
7dbddde79e3ca1b81e00288616fc27434698ce6dcb47714728fce8602ae91f45
drh [Mon, 5 Sep 2022 22:54:36 +0000 (22:54 +0000)]
Add the tool/omittest-msvc.tcl script that will try to build using MSVC
using various compile-time options, to ensure that the compile-time options
all build without errors.
FossilOrigin-Name:
6b00ecb59fd303f7985902c35a46db9e729201d4beaedea46596b728d9e4b1c8
drh [Mon, 5 Sep 2022 22:53:24 +0000 (22:53 +0000)]
Get the tool/omittest-msvc.tcl script working.
FossilOrigin-Name:
82b89f8a074858a81d841dfc26436e8d39ce4907b8f989eba4d848db16758303
drh [Mon, 5 Sep 2022 20:42:01 +0000 (20:42 +0000)]
Add a prototype for a script, similar to tool/omittest.tcl, that is designed
to test builds using MSVC to ensure they work with various OMIT options.
FossilOrigin-Name:
b1e37a0bd31fa9f8e58c2859a80c23a682b4702eefab2c55b243f1e21d475d6c
drh [Mon, 5 Sep 2022 18:17:03 +0000 (18:17 +0000)]
Fix the windows build so that it works with -DSQLITE_OMIT_AUTOINIT.
FossilOrigin-Name:
f74a5ea8c986dc33d3afcda169c38abbe55728c56716cf9991a5e2ef7fc4917a
dan [Fri, 2 Sep 2022 21:19:24 +0000 (21:19 +0000)]
Ensure the Pager.journalOff variable is zeroed if an error occurs while writing the initial header to the journal file.
FossilOrigin-Name:
da7af290960ab8a04a1f55cdc5eeac36b47fa194edf67f0a05daa4b7f2a4071c
drh [Fri, 2 Sep 2022 17:25:25 +0000 (17:25 +0000)]
drh [Fri, 2 Sep 2022 15:09:55 +0000 (15:09 +0000)]
If sqlite3PcacheMove() really performs a swap, then be sure to renumber the
second page.
FossilOrigin-Name:
81cff9f1955874aade55daa94263f58f06d966bd51ad558755f92777069a7347
drh [Fri, 2 Sep 2022 14:29:54 +0000 (14:29 +0000)]
Enhance the pcache1 implementation so that during an xRekey operation if
another page already exists at the destination, that other page gets moved
to the source key.
FossilOrigin-Name:
aadd38f99a3e5abcf9bef49f4367752f163cc79500a28f812bb71969d7de419c
drh [Fri, 2 Sep 2022 11:45:26 +0000 (11:45 +0000)]
Mutex protect access to the sqlite3_test_directory and sqlite3_data_directory
global variables. See
[forum:/forumpost/
719a11e1314d1c70 |forum thread
719a11e1314d1c70 ].
FossilOrigin-Name:
8e6ad3a3e942a326cf16432e16d6596c7206c05b6f45cd0ff3a9b836bcfc9deb
drh [Fri, 2 Sep 2022 11:12:16 +0000 (11:12 +0000)]
Improved mutex protection of the sqlite3_temp_directory and
sqlite3_data_directory global variables.
FossilOrigin-Name:
ebbe9634d6dde9e097f61fb98a79111e46de422b7bbbd9ed3af7b6f22aacf5ec
drh [Fri, 2 Sep 2022 00:36:16 +0000 (00:36 +0000)]
Experimental changes to put sqlite3_temp_directory behind a mutex.
FossilOrigin-Name:
5ee3515fbb88bf1ae5f8b507844f82dcc429380b6ebeab9b09b52b25ee60a60d
drh [Thu, 1 Sep 2022 13:51:09 +0000 (13:51 +0000)]
Defer deleting a transient SELECT statement associated with a flattening
of one arm of a compound SELECT until after the parse has completed.
FossilOrigin-Name:
1c4157c71cd1e062a9c2c79787d17e34e340f28ce1e40573851dfe174f5da7d7
drh [Thu, 1 Sep 2022 10:29:02 +0000 (10:29 +0000)]
In the query planner, add a heuristic that will reduce the cost of a full
table scan for a materialized view or subquery if the full scan is the
outer-most loop. This is shown to speed up some queries.
FossilOrigin-Name:
609fbb94b8f01d6792e5941ab23ce041313d359f6788c4dde6b1ca749ab49137
drh [Wed, 31 Aug 2022 15:04:42 +0000 (15:04 +0000)]
Enhance the b-tree page sorting code to ensure that sqlite3PagerRekey() never
overloads a page number and uses only the PENDING_BYTE page for temporary
storage.
FossilOrigin-Name:
5007742886bd20de20be3973737cf46b010359911615eb3da69cd262bd9a2435
drh [Tue, 30 Aug 2022 16:54:41 +0000 (16:54 +0000)]
Improved comments in pcache1.c. No changes to code.
FossilOrigin-Name:
dd017bb1b3e31c7692d29dc4865d6bda871e429978c8738a39160d0114e5bf9b
drh [Tue, 30 Aug 2022 00:11:51 +0000 (00:11 +0000)]
Any function call can abort. Take this into account when deciding if a DML
statement needs a statement journal. See
[forum:/forumpost/
9b9e4716c0d7bbd1 |forum thread
9b9e4716c0d7bbd1 ] for more
information.
FossilOrigin-Name:
5c95ae6c9b93b9bcf698bb1cad93b2da2e28121b35e7c539b1ddc0ef2de33cfe
drh [Sat, 27 Aug 2022 16:11:00 +0000 (16:11 +0000)]
drh [Sat, 27 Aug 2022 14:43:34 +0000 (14:43 +0000)]
Ensure that every pcache page always has either the PGHDR_DIRTY or the
PGHDR_CLEAN bit set, even during transient page reshuffling during btree
balancing.
FossilOrigin-Name:
e67f03c166277951725c194674c84da61c152a5820aa6df55a726f7dda838e92
drh [Thu, 25 Aug 2022 19:29:35 +0000 (19:29 +0000)]
Ensure that sqlite3_prepare() inputs always have a semicolon terminator in
speedtest1.
FossilOrigin-Name:
c72756b0f2db30c622f00f43be9245d50e36049bd7740ee6332164f0c48f9c3d
drh [Thu, 25 Aug 2022 19:19:25 +0000 (19:19 +0000)]
dan [Thu, 25 Aug 2022 13:32:55 +0000 (13:32 +0000)]
Remove a NEVER() macro for a condition that is actually reachable following an OOM. dbsqlfuzz crash-
6ef3cd3b18ccc5de86120950a0498641acd90a33 .txt.
FossilOrigin-Name:
b573e2cffa5fedc893ed30e76e47022b3617ac5583e1eb486afa810b2514c419
drh [Wed, 24 Aug 2022 17:59:00 +0000 (17:59 +0000)]
Add a mutex to the sqlite3_db_config() interface so that it is threadsafe
when two or more threads call it on the same database connection at the same
time.
FossilOrigin-Name:
459ad8846ee1ee2d3b277a291c47121692bdf477e779b06e77be8338f62237a6
dan [Wed, 24 Aug 2022 11:51:31 +0000 (11:51 +0000)]
Fix an inefficiency in the ".dump" command when outputing large blob literals.
FossilOrigin-Name:
c055d05dbdfd4643d5052c6e6a736c78651fdfcd78f15f791af903df3814832d
drh [Tue, 23 Aug 2022 20:11:01 +0000 (20:11 +0000)]
Change the names of the Vdbe.pVNext and Vdbe.ppVPrev fields to make them
unique. Change to ppVPrev to save a few bytes and a few CPU cycles.
FossilOrigin-Name:
34b8ea31877ae8b40729d37b3f51ae7e15f38be841881ea4a37c9c8f0a52896d
drh [Tue, 23 Aug 2022 17:51:39 +0000 (17:51 +0000)]
Enhance assert() statements to enforce tighter bounds on the P5 operand of
the OP_Next and OP_Prev opcodes.
FossilOrigin-Name:
4e0a07fc6f96e6e7726506b7a5ee942461c1381501f253893fa94d76023b634f
stephan [Tue, 23 Aug 2022 16:55:19 +0000 (16:55 +0000)]
Add mksourceid binary to the clean rules and $(TESTPROGS) to distclean.
FossilOrigin-Name:
ae3e82f5a3332bea261aca6a0dd02063cf7056c023204cc10f1ae18d75249f91
drh [Mon, 22 Aug 2022 15:18:37 +0000 (15:18 +0000)]
Performance enhancement for sqlite3DbFree().
FossilOrigin-Name:
c296a9d958ec360fc8d217363348b4918d665bccb3c4f27503a2dcef7db49052
drh [Mon, 22 Aug 2022 02:00:26 +0000 (02:00 +0000)]
Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both the
db and ptr parameters are guaranteed to be non-NULL. Use this where
appropriate to save more than 2 million CPU cycles on the standard
performance test.
FossilOrigin-Name:
e5eaa80e81fdf86f2875a912b880272b8d099b82b08e945a7988c5dd0fe9d6b5
drh [Sat, 20 Aug 2022 19:45:41 +0000 (19:45 +0000)]
Merge the test case for dbsqlfuzz
18fe4e257be7fa3ecfb0424ab7427e41e97ef9e3
assertion fault, which is fixed with the previous check-in.
FossilOrigin-Name:
2d13ec086e96a5446462ce0f689c40c8196e740cd693f5967bfe9eb961f03463
drh [Sat, 20 Aug 2022 19:33:04 +0000 (19:33 +0000)]
Enhance the enforcement of SQLITE_VTAB_DIRECTONLY so that it applies to
DML statements within triggers. Do not allow DML stratements against
virtual tables within triggers unless either the virtual table is
SQLITE_VTAB_INNOCUOUS or PRAGMA trusted_schema is ON.
FossilOrigin-Name:
9433ea4070f52135be64569057f439e7bdb4b3f425d87167c9ebda50011210c1
dan [Fri, 19 Aug 2022 20:10:51 +0000 (20:10 +0000)]
drh [Wed, 17 Aug 2022 20:18:34 +0000 (20:18 +0000)]
In the ".dump" command of the CLI, if a schema statement ends with an
unterminated comment, try to terminate that comment prior to appending
the ";" at the end. [forum:/forumpost/
d7be961c5c |Forum post
d7be961c5c ].
FossilOrigin-Name:
96e112da1ac56767cf49f26132833745b6020d2c60f5c36f86ca84f87ad30c81
drh [Wed, 17 Aug 2022 18:07:52 +0000 (18:07 +0000)]
Enhance the "PRAGMA integrity_check" statement so that it verifies the rows of
a WITHOUT ROWID table are in the correct order.
FossilOrigin-Name:
62f934bff495850d0763e07ffa44a557f066ecba9d039363f32287213cba819f
drh [Wed, 17 Aug 2022 17:14:36 +0000 (17:14 +0000)]
Minor code simplification in the code generator for PRAGMA integrity check.
FossilOrigin-Name:
a3b9c7a6c9be5c78a93e5125f16237d2d84b977eca81f527af0198e96435a995
drh [Tue, 16 Aug 2022 17:18:00 +0000 (17:18 +0000)]
Change the legacy RC4-based PRNG to use the RFC-7539 chacha20 algorithm.
FossilOrigin-Name:
a0f801151925e882e120f6ab685dcacb9d3268d25b52bc665c5b927bcc7dda1e
drh [Tue, 16 Aug 2022 16:57:33 +0000 (16:57 +0000)]
Fix obsolete comments. Add new comments. Fix non-standard spacing.
FossilOrigin-Name:
a0d224c6a69941dad1f2b35edcc7ddee343b99eae2aeed74043461f3e97ef5b4
drh [Tue, 16 Aug 2022 16:40:54 +0000 (16:40 +0000)]
Fix an off-by-one error in the ChaCha20 initialization code.
FossilOrigin-Name:
72e220eed446ea9a02a6ef03e09a01bcb8bbca1f3b32d2e0bf52a17d9722e2f0
drh [Tue, 16 Aug 2022 14:09:51 +0000 (14:09 +0000)]
Omit an unnecessary test case from corruptN.test that does not work with the
new RFC-7539 PRNG.
FossilOrigin-Name:
d9e8c65ed25c4f6222c737f4244d5362dbe433d357f7d133765157446cf4e925
dan [Tue, 16 Aug 2022 10:52:35 +0000 (10:52 +0000)]
Add assert() statements to verify that the SQLITE_OPEN_EXCLUSIVE flag is always passed to the VFS when opening a temporary file.
FossilOrigin-Name:
e123da49ccae61d591abded52f4721aa10f20d75935c9a3e3fe826a9b8df2317
drh [Tue, 16 Aug 2022 00:04:40 +0000 (00:04 +0000)]
Replace the RC4-based PRNG with one based on ChaCha20. 3x faster.
FossilOrigin-Name:
084d8776fa95c75440530028171c56547a341c9a952ba2f29bb533b538603c78
dan [Mon, 15 Aug 2022 19:23:15 +0000 (19:23 +0000)]
drh [Mon, 15 Aug 2022 18:36:08 +0000 (18:36 +0000)]
The new --script option to dbtotxt.c looks for an SQL script at the head of
the file and generates a CLI script that will construct the database then run
the SQL.
FossilOrigin-Name:
6170e638ebeb12cc40c3247324237978401f701afc270de88ad03e183e82cefc
drh [Mon, 15 Aug 2022 12:26:26 +0000 (12:26 +0000)]
In the documentation emphasize that the use of shared cache is discouraged.
Fix test cases so that they all work with shared cache disabled.
FossilOrigin-Name:
52c3ae063e133c5f88cad2c3084cf46218f865ac817ab937e3529d2c6a7af300
drh [Fri, 12 Aug 2022 18:46:01 +0000 (18:46 +0000)]
Add the (undocumented) SQLITE_DEFAULT_UNIX_VFS compile-time option.
FossilOrigin-Name:
49828bdec5f926cd18a069d39a5db0b1e1f3528a2affcfbaa1cf7b98aca51b3b
stephan [Fri, 12 Aug 2022 17:55:18 +0000 (17:55 +0000)]
Minor wasm-related doc clarification and remove an obsolete code comment.
FossilOrigin-Name:
1b1f650a08da93da97ed3a96b9a3e4eac567472c266188c02a9bffe1cf620e53
stephan [Fri, 12 Aug 2022 13:07:21 +0000 (13:07 +0000)]
wasm: document the role of sqlite3-wasm.c. Other minor doc updates.
FossilOrigin-Name:
4c10b9b18feca82440273f8192fef951ad051bbfd8aad4d3c840cf6375130afd
stephan [Fri, 12 Aug 2022 09:32:51 +0000 (09:32 +0000)]
wasm: corrected (in as-yet unused code) a flags check.
FossilOrigin-Name:
06b6113783dd81252a5dd125e1cddb52a9d4e387c74cfb3ba88475e47a31060a
stephan [Thu, 11 Aug 2022 15:45:32 +0000 (15:45 +0000)]
stephan [Thu, 11 Aug 2022 09:18:09 +0000 (09:18 +0000)]
Merge in wasm-cleanups branch, reorganizing and updating the wasm-related components.
FossilOrigin-Name:
c072594d3de3d6893c5d4a9d68439b84d043325f105b0d065575765a6e66c196
drh [Wed, 10 Aug 2022 18:40:43 +0000 (18:40 +0000)]
Fix another harmless comment typo that causes a typo in the documentation.
FossilOrigin-Name:
bb084adb53386d8e52ca1e818a8322d2ec641b73fd8568cee01cc74c0ee9f265
drh [Wed, 10 Aug 2022 18:33:57 +0000 (18:33 +0000)]
Remove (harmless) duplicate words in comments used to generate parts of the
documentation. [forum:/forumpost/
54abbe9ccd |forum post
54abbe9ccd ]
FossilOrigin-Name:
b5e4f0db09ff7790862357df3c6fd38a2dcdfc82ff51b9f0d9470517648c844d
dan [Wed, 10 Aug 2022 15:29:21 +0000 (15:29 +0000)]
Fix handling of columns with names that are SQL keywords in the ".expert" command.
FossilOrigin-Name:
5e1b8221c385deb04a3ff5aafb2e9fc55aecc6ffc68328674e3afe56c4273e29
stephan [Wed, 10 Aug 2022 13:22:44 +0000 (13:22 +0000)]
wasm opfs: error handling fix for an impossible-to-reach error case. Minor cosmetic tweaks in the wasm JSON enum.
FossilOrigin-Name:
683a3b937e608a5ecaf7f63f054e8a63179d67c8b2348bf843e5e68f27a369f5
stephan [Wed, 10 Aug 2022 11:26:08 +0000 (11:26 +0000)]
wasm refactoring part 2 of (apparently) 2: moved ext/fiddle/... into ext/wasm and restructured the core API-related parts of the JS/WASM considerably.
FossilOrigin-Name:
27f9da4eaaff39d1d58e9ffef7ddccf1e41b3726914f754b920e3e1fb572cba6
stephan [Wed, 10 Aug 2022 09:36:10 +0000 (09:36 +0000)]
wasm/fiddle refactoring part 1 of N: move fiddle app from ext/fiddle to ext/wasm/fiddle, which only contains files intended to be pushed to the live site. Disabled build of the non-fiddle wasm parts, pending a later step of the refactoring.
FossilOrigin-Name:
fb4eb93080288b60815be14afd7ddbbca470ce363fa3735352ea9a558fef583e
stephan [Wed, 10 Aug 2022 07:58:57 +0000 (07:58 +0000)]
Merged in trunk for pending tree refactoring.
FossilOrigin-Name:
c3a3cb0103126210692bbeb703e7b8793974042e1fc2473be6d0a0d9b07d5770
drh [Tue, 9 Aug 2022 16:13:21 +0000 (16:13 +0000)]
Allow the name of an index to collide with a table in a different schema.
FossilOrigin-Name:
f963c2523872b59b8a7a14971f703f2eb0d021501b288597a958f6596885d0de
drh [Tue, 9 Aug 2022 14:28:54 +0000 (14:28 +0000)]
Omit the (undocumented) SQLITE_PCACHE_SEPARATE_HEADER compile-time option.
FossilOrigin-Name:
60947da687d525e72e62bcddcdf4c5c819818855074cc318c9ee656e83897aef
dan [Mon, 8 Aug 2022 19:29:53 +0000 (19:29 +0000)]
Avoid some cases of signed integer overflow in fts5 by casting to unsigned values.
FossilOrigin-Name:
46a78c8c0ed518c4521e6e0bdebeb065bab07076abc444775002e7f4361d2242
drh [Mon, 8 Aug 2022 16:25:13 +0000 (16:25 +0000)]
Avoid trying to cast an over-sized floating point value into an integer.
FossilOrigin-Name:
3518cd7cb1feeefc3963da72c2d258d81d8914f1e1f427da28a00b6228cf126c
drh [Mon, 8 Aug 2022 13:04:08 +0000 (13:04 +0000)]
Remove an unreachable branch in the numericType() helper routine.
FossilOrigin-Name:
a99cc008e46ab1a4fdbe2fa87202d026a10c57be55e3e9fedd935795ed6dc694
drh [Mon, 8 Aug 2022 12:19:13 +0000 (12:19 +0000)]
Do not attempt to convert an oversized floating point value into an integer.
FossilOrigin-Name:
6c4fc8385ee22516e0b87fb647327ee7d1a564040ebe2a4d66fc999ef2908df2
dan [Sat, 6 Aug 2022 15:28:37 +0000 (15:28 +0000)]
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans.
FossilOrigin-Name:
86e30d7c4bb1cebe25b66686d6d1ee170c1a88e5a6c1bed6652ebbb024d62062
dan [Fri, 5 Aug 2022 17:16:00 +0000 (17:16 +0000)]
Avoid having fts3 read uninitialized values when processing deferred tokens.
FossilOrigin-Name:
98729c5fa6c4c418ca9779c35e6874c930e5cee5a90b5eb32b284a0f3762269e
mistachkin [Fri, 5 Aug 2022 05:30:07 +0000 (05:30 +0000)]
Fix harmless compiler warning seen with MSVC.
FossilOrigin-Name:
e36217f2536d89f7a15a879fe3ead32307909c71ced42e1ae7b35f43d4744a80
drh [Thu, 4 Aug 2022 17:15:00 +0000 (17:15 +0000)]
Fix a problem with the query optimizer for LIMIT/OFFSET queries when
underlying query is a UNION ALL and both arms of the UNION ALL are
subqueries with an ORDER BY clause. This bug was reported at
[forum:/forumpost/
6b5e9188f0657616 |forum post
6b5e9188f0657616 ]. The
problem was introduced in 2015 (SQLite version 3.9.0) by check-in
[
4b631364354068af ]. See also ticket [
b65cb2c8d91f6685 ].
FossilOrigin-Name:
6c806f64bbc9e98891bad0868575ee2ec5d0951ceb0c71d3ed417b45d5f27561
drh [Thu, 4 Aug 2022 14:02:35 +0000 (14:02 +0000)]
Fix a typo on a comment used to generate bytecode documentation.
FossilOrigin-Name:
64348d0b665f61c3a89f51341f23ca87f939dd9e306dc58c2004e46ab04e696e
drh [Wed, 3 Aug 2022 19:53:54 +0000 (19:53 +0000)]
Performance optimization to the math opcodes of the bytecode engine.
FossilOrigin-Name:
597347d9c39f6ed068ac942a8c9853b1b745fce1eb5e9dd30f6c1cb312b36f53
drh [Wed, 3 Aug 2022 19:37:25 +0000 (19:37 +0000)]
Small performance increase on the binding interfaces.
FossilOrigin-Name:
aab24c37fb444804fb91177b4b522909ef1bb85383444d97d82a758f919047d2
drh [Wed, 3 Aug 2022 17:26:32 +0000 (17:26 +0000)]
drh [Wed, 3 Aug 2022 15:58:44 +0000 (15:58 +0000)]
For an IN operator used with a RIGHT JOIN, use the number of terms in the
vector, not the number of equality terms, to size the column map.
dbsqlfuzz
14cfdad6ca45e607163f54049ddf5065183dc657 .
FossilOrigin-Name:
b184c8d9222da6b420b5d7c439bbe4b737d92ffa27f5e933f4e1a9c8117b0ee5
drh [Mon, 1 Aug 2022 13:14:03 +0000 (13:14 +0000)]
In the xUpdate method of the GeoPoly virtual table, make sure that the
number of updated columns does not exceed the underlying implementation, even
if the virtual table object records an excess number of column in the nAux
field due to table constraints in the table definition.
Fix for the problem reported by
[forum:/forumpost/
a096ab7d96bb057a |forum post
a096ab7d96bb057a ].
FossilOrigin-Name:
a04dd475c2c8afdded0afecfd34c6c4c2f48cce520e09b7fa5172ff30f09209e
drh [Tue, 26 Jul 2022 19:10:13 +0000 (19:10 +0000)]
Restore a VDBE coverage macro that is mistakenly deleted for
check-in [
92ac01d41d46ab73 ].
FossilOrigin-Name:
01de7ec44fb1e8e6f847eaef433216b3163a44a8789451718e1c419ef840ddfb
dan [Tue, 26 Jul 2022 18:43:45 +0000 (18:43 +0000)]
Fix another problem related to aggregate query LEFT JOIN flattening.
FossilOrigin-Name:
8e12c6f59bcb67be4ff131feecc5af68f4bb0afbcced2e2f7e73289aaf95d99d
drh [Tue, 26 Jul 2022 15:41:34 +0000 (15:41 +0000)]
Omit a unused variable initialization in order to suppress a harmless compiler
warning.
FossilOrigin-Name:
2d703c5e941cac72efc21d58e1e35c446b338b2927a42f587ab788826fd7f3f1
dan [Tue, 26 Jul 2022 15:39:32 +0000 (15:39 +0000)]
drh [Tue, 26 Jul 2022 15:32:02 +0000 (15:32 +0000)]
Make sure IF_NULL_ROW expressions receive a separate slot in the sorter used
to implement GROUP BY.
FossilOrigin-Name:
2bda4fca06ab6be5ad02377a7d1fd9fb9586e3181f1052e4b4937958bdd45efe
drh [Tue, 26 Jul 2022 14:37:04 +0000 (14:37 +0000)]
Improved AggInfo.aCol debugging output, intended to debug a problem with
LEFT JOIN flattening into an aggregate query with GROUP BY.
FossilOrigin-Name:
e717e029bde4ee68b6ea77a68721c02ddb6e296f1d310a368137ea3c4164f68c