]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoEnhance the shell tool ".dump PATTERN" command so that it dumps the contents of shado...
dan [Tue, 25 May 2021 11:39:14 +0000 (11:39 +0000)] 
Enhance the shell tool ".dump PATTERN" command so that it dumps the contents of shadow tables when a virtual table is identified by the PATTERN.

FossilOrigin-Name: b0bc5ab9ceec496ac260ccfd53b51a2b53a81576fbe04c97b99f6705b063c59f

4 years agoFix a problem in the in-memory journal code that could occasionally lead to a segfaul...
dan [Mon, 24 May 2021 14:35:19 +0000 (14:35 +0000)] 
Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed.

FossilOrigin-Name: 17960165f5840cab45b7a8bb02779ebfb321c68f33ec6da9ab14063ccd134fa4

4 years agoMinor comment improvements in fuzzcheck.c.
drh [Mon, 24 May 2021 12:28:13 +0000 (12:28 +0000)] 
Minor comment improvements in fuzzcheck.c.

FossilOrigin-Name: 7aca8d52c16c2192d9c1ff03a976c482a60365cef8d2474b540ff4c84e8737b4

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Mon, 24 May 2021 12:13:10 +0000 (12:13 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 5bb5c9ec049488f95e47bbd9f1db9038ffabad3cfafa613acdaa790ab4034eee

4 years agoFix the TreeView module so that it works with the TK_ERROR exprssion.
drh [Mon, 24 May 2021 11:35:16 +0000 (11:35 +0000)] 
Fix the TreeView module so that it works with the TK_ERROR exprssion.
Also fix an assert() that was failing due to the recent TK_ERROR addition.

FossilOrigin-Name: dd56fbe0cfb0f7848190ce097b378321dd25ae509c7edf93682b091014824fc6

4 years agoAdditional defenses (above and beyond [b986600520696b0c]) to prevent an
drh [Mon, 24 May 2021 00:17:04 +0000 (00:17 +0000)] 
Additional defenses (above and beyond [b986600520696b0c]) to prevent an
invalid subquery from causing problems downstream.  If an error is found
while analyzing a subquery expression, change the expression to TK_ERROR
so inhibit further processing on that expression.
dbsqlfuzz cf624b8c0484c66e0f552bf6475e3e3f2c22b24e.

FossilOrigin-Name: 0be6b6c9f7c562e764792a4a5eb53ed11b230174b19361f7cd7778c743314bbd

4 years agoDo not push a WITH clause onto the processing stack if prior errors have
drh [Sun, 23 May 2021 17:47:04 +0000 (17:47 +0000)] 
Do not push a WITH clause onto the processing stack if prior errors have
occurred.  dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0.

FossilOrigin-Name: c2066dde53b9872dbb991e27419dd031791c942fe23826556f52efbd66c51662

4 years agoDo not invoke sqlite3ExprAffinity() after a syntax error that might have
drh [Sat, 22 May 2021 11:23:20 +0000 (11:23 +0000)] 
Do not invoke sqlite3ExprAffinity() after a syntax error that might have
left the tree in an inconsistent state.  See also [e8a1515b44380cc5] and
[forum:/forumpost/7e484e225c|forum post 7e484e225c].

FossilOrigin-Name: b986600520696b0c91c4ccc6aff1b698391b4bcaf8a3ea436be1967883faa2fe

4 years agoThe fix in the previous check-in was only correct if the OOM occurs on
drh [Sat, 22 May 2021 11:00:03 +0000 (11:00 +0000)] 
The fix in the previous check-in was only correct if the OOM occurs on
the initial allocation.  This changes should make it correct for a resize
as well.

FossilOrigin-Name: 57087ab2f297e4d96da5b9f3b89a26d8dd2bc4d22c2be8045b5d956d86282f39

4 years agoIf an FTS5 Cursor fails to enlarge the space for the aInst array, set the
drh [Sat, 22 May 2021 01:30:30 +0000 (01:30 +0000)] 
If an FTS5 Cursor fails to enlarge the space for the aInst array, set the
size of the aInst array to zero.
dbsqlfuzz 294254b8105cca409f27a711f1eb2e9e63cbcac5.

FossilOrigin-Name: 4ae5e5b5ecbce580d3f7f970076e828fc6fb5fbcdc3bbe8381ab38f52870a54f

4 years agoIf there are errors in a nested CTE, be sure to abandon processing. Do not
drh [Fri, 21 May 2021 21:49:07 +0000 (21:49 +0000)] 
If there are errors in a nested CTE, be sure to abandon processing.  Do not
continue since the parse tree may have been left in a goofy state which could
cause use-after-free and segfaults.
See [forum:/forumpost/aa4a7a3980|forum post aa4a7a3980] for an example.

FossilOrigin-Name: 94225d693932eb0b5d7799d40513afbd31ed40e1e156675eb92ad7216f1ff20f

4 years agoFix a problem with SQLITE_MAX_MEMORY in malloc.c.
dan [Fri, 21 May 2021 16:41:22 +0000 (16:41 +0000)] 
Fix a problem with SQLITE_MAX_MEMORY in malloc.c.

FossilOrigin-Name: c18dbe2f389f4ba7b219b7995d4f7009d1bc249ef8f93a30b262c6d2c008319d

4 years agoFix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation
drh [Thu, 20 May 2021 23:25:28 +0000 (23:25 +0000)] 
Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation
of the fix at [59812e7ef705226c].

FossilOrigin-Name: 240f7494bfa3e0806ae2f971e78039c62a419de647cb9e807309f90e1d2a536d

4 years agoEnhance one test case to use various alternative definitions of DUAL.
drh [Thu, 20 May 2021 18:11:45 +0000 (18:11 +0000)] 
Enhance one test case to use various alternative definitions of DUAL.

FossilOrigin-Name: 179dcb6ba771f0e94e06b5e3c5534d8005d27b2c9b4601be20fd68abfbc5dfd0

4 years agoEnsure that objects within view definitions are not incorrectly resolved to CTEs...
dan [Thu, 20 May 2021 17:15:06 +0000 (17:15 +0000)] 
Ensure that objects within view definitions are not incorrectly resolved to CTEs that are part of the statement using the view.

FossilOrigin-Name: f7dcc4b5197c6413be31384b390bb98a737d3f9edb7964433448c3b90b35a436

4 years agoEnsure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and...
dan [Thu, 20 May 2021 11:42:51 +0000 (11:42 +0000)] 
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases.

FossilOrigin-Name: 67bde01614edd944b769ab28488bac1dbbf17d88beee62ca7f1e45681aa3d402

4 years agoReplace [0f0959c6f95046e8] with a new and better solution that also fixes the
drh [Thu, 20 May 2021 00:44:04 +0000 (00:44 +0000)] 
Replace [0f0959c6f95046e8] with a new and better solution that also fixes the
CTE name resolution problem described in
[forum:/forumpost/8590e3f6dc|forum post 8590e3f6dc].
Test cases for both problems added.

FossilOrigin-Name: 5614279daff5007d6e047c5c1b3cc82ba80a5c91c529525b0fe68b79ee82dd2c

4 years agoFixes and improvements to PRAGMA compile_options.
drh [Thu, 20 May 2021 00:10:24 +0000 (00:10 +0000)] 
Fixes and improvements to PRAGMA compile_options.

FossilOrigin-Name: 34579549a3bc1c2cfbf47a4770c1d7abc97869ba57bcd3ab1515765ca505ea05

4 years agoWhen constructing the synthensized SELECT statement that is used to choose
drh [Wed, 19 May 2021 21:55:56 +0000 (21:55 +0000)] 
When constructing the synthensized SELECT statement that is used to choose
the rows in an UPDATE FROM, make sure the first table is really the table
being updated, and not some common-table expression that happens to have the
same name.  [forum:/forumpost/a274248080|forum post a274248080].  More
changes associated with CTE name resolution are pending.

FossilOrigin-Name: 0f0959c6f95046e8e7887716e0a7de95da18d1e926ab1f919527083a56541db5

4 years agoIncorporate ..._DESERIALIZE revision. compile_options
larrybr [Wed, 19 May 2021 20:01:53 +0000 (20:01 +0000)] 
Incorporate ..._DESERIALIZE revision.

FossilOrigin-Name: b70587cca9e4f0116621e27362186e9329bcea8016c6565cd3ec5a9bf4a99d46

4 years agomerge from trunk
larrybr [Wed, 19 May 2021 19:55:10 +0000 (19:55 +0000)] 
merge from trunk

FossilOrigin-Name: 19ffe3cfe278a4046f32df56f75080c2377e4c44ad40a02d39db8e7701526204

4 years agoAdd a comment with useful information about SHM locking. No changes to
drh [Wed, 19 May 2021 19:28:48 +0000 (19:28 +0000)] 
Add a comment with useful information about SHM locking.  No changes to
deliverable code.

FossilOrigin-Name: 4e81ea3b15fb3fce5f31b77273639e748a735ab0970620e564e9a5c977b24a1a

4 years agoFix a formatting error on the comment. better-comment
drh [Wed, 19 May 2021 19:27:42 +0000 (19:27 +0000)] 
Fix a formatting error on the comment.

FossilOrigin-Name: 6f2fb60e499fc758bea6ffec030fef8ab5f97d08d31450f0b3ffafc20e652891

4 years agoAdd a table of shared-memory lock offsets in a comment in the os_unix.c code.
drh [Wed, 19 May 2021 16:55:28 +0000 (16:55 +0000)] 
Add a table of shared-memory lock offsets in a comment in the os_unix.c code.
Include some assert()s to help verify the numbers.

FossilOrigin-Name: b480aacb3430a789d98ffd81a1886bbbc3cda5b0e736ec9a3e2b463db2a3b3ad

4 years agoAllow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame...
dan [Wed, 19 May 2021 14:49:51 +0000 (14:49 +0000)] 
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions.

FossilOrigin-Name: 3daab94977af5e8a95690acc555540311403d890a3261a9757c633fcaaf428a9

4 years agoImproved column name and column type determination for the RETURNING clause.
drh [Wed, 19 May 2021 12:17:03 +0000 (12:17 +0000)] 
Improved column name and column type determination for the RETURNING clause.

FossilOrigin-Name: 699c33990a9438f28673ecf34f1e521d1af0b01c6ee30a608c0c91d2d593590e

4 years agoCure some TCL test failures and narrow an object scope.
larrybr [Wed, 19 May 2021 02:33:42 +0000 (02:33 +0000)] 
Cure some TCL test failures and narrow an object scope.

FossilOrigin-Name: 1155696c700862de1a8b1318bc41cd5cd01dec1af2c7720d8ef1e5c3321c425d

4 years agoIn the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be
drh [Tue, 18 May 2021 19:10:10 +0000 (19:10 +0000)] 
In the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be
generated twice.  But for some subqueries, generating code off of the same
tree twice causes problems.  So now MULTI-INDEX OR makes a copy of the
sub-expressions it uses to avoid code-generating them more than once.
dbsqlfuzz 9ebd2140e7206ff724e665f172faea28af801635.

FossilOrigin-Name: 4a55f72542c8bcc80253aa77043314cecb29d73cb4f51aa80f7811e86cc8ef68

4 years agoImproved comments on the generated opcodes.h file.
drh [Tue, 18 May 2021 12:36:35 +0000 (12:36 +0000)] 
Improved comments on the generated opcodes.h file.

FossilOrigin-Name: f2a17f1fad08779486e4d50d0d9277c7f87a9558a53af1a68aa5fe2ec30e820e

4 years agoAdd a CORRUPT_DB term to an assert() added earlier today.
drh [Tue, 18 May 2021 00:52:06 +0000 (00:52 +0000)] 
Add a CORRUPT_DB term to an assert() added earlier today.

FossilOrigin-Name: 304739d2382446e7b698d67377679168e46f0a19bb0794fdf22d0a0a84a8cbcc

4 years agoFix harmless compiler warnings.
drh [Mon, 17 May 2021 17:14:38 +0000 (17:14 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: ace12a3912a4fdc2f0e741361ec705652a11b6f5e3548d54bd6f273671ba1e09

4 years agoEnhance the integer-comparison optimization on the OP_Eq and similar
drh [Mon, 17 May 2021 16:54:52 +0000 (16:54 +0000)] 
Enhance the integer-comparison optimization on the OP_Eq and similar
opcodes so that it avoids a lot of useless work.

FossilOrigin-Name: 4221f41af9df90da4183d45d0edfae19b4f7095ec35a203c8dfd2712799e3839

4 years agoFix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER...
dan [Mon, 17 May 2021 16:20:41 +0000 (16:20 +0000)] 
Fix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER BY clauses of window frame definitions. Also a problem with renaming a column when the schema contains a trigger containing a correlated sub-select within a window frames PARTITION BY or ORDER BY clause.

FossilOrigin-Name: 4c6cd54a8db78e5535912e76856bed4f797261aaca4248c69d2e2452194de297

4 years agoWhen deleting an SQL function that does not exist, return without doing
drh [Mon, 17 May 2021 13:11:24 +0000 (13:11 +0000)] 
When deleting an SQL function that does not exist, return without doing
anything at all rather than creating a tombstone function.  In this way,
function deletes that happen inside virtual-table destructors that are run
when a database connection is closing do not create new tombstones in the
function table after the function table has already been purged.
[forum:/forumpost/726219164b|forum post 726219164b].

FossilOrigin-Name: 391c73132c80df944fb49a17d8fe78203c54ac48f968ee9dd9dd8c769c0b4b10

4 years agoPerformance improvement in sqlite3TableLock().
drh [Mon, 17 May 2021 11:19:32 +0000 (11:19 +0000)] 
Performance improvement in sqlite3TableLock().

FossilOrigin-Name: 0d77e371c47107f67550e9bedfd26808fcfd84c7473f94b6053f75f0e3463c73

4 years agoPerformance optimization in the memory allocation of allocateCursor.
drh [Sat, 15 May 2021 19:36:36 +0000 (19:36 +0000)] 
Performance optimization in the memory allocation of allocateCursor.

FossilOrigin-Name: 9d16323d14370b737399eb52b69b70cc614f78fb8a1e93f21a348c34a30dd456

4 years agoPerformance optimization to the clearCell() routine inside of btree.
drh [Sat, 15 May 2021 13:08:44 +0000 (13:08 +0000)] 
Performance optimization to the clearCell() routine inside of btree.

FossilOrigin-Name: c4e02619a4dc8b07f658e7c88011991a086eb1e760d920b9024a11437daaabfd

4 years agoSmall performance improvement for sqlite3BtreeInsert().
drh [Fri, 14 May 2021 20:01:36 +0000 (20:01 +0000)] 
Small performance improvement for sqlite3BtreeInsert().

FossilOrigin-Name: 4ae64484c57740333322cebd713b50b01a5a5838d41c65f67e26d65769770789

4 years agoAvoid adding superfluous virtual WHERE clause terms that might arise due
drh [Fri, 14 May 2021 15:37:00 +0000 (15:37 +0000)] 
Avoid adding superfluous virtual WHERE clause terms that might arise due
to the constant propagation optimization.

FossilOrigin-Name: cf63abbe559d04f993f99a37d41ba4a97c0261094f1d4cc05cfa23b1e11731f5

4 years agoAttempt the [/info/f4229707ac08d66c|constant propagation optimization] on any
drh [Fri, 14 May 2021 14:26:57 +0000 (14:26 +0000)] 
Attempt the [/info/f4229707ac08d66c|constant propagation optimization] on any
WHERE clause that has a top-level AND operator, even if the query is not
a join.  This is an attempt to partially address the concern raised in
[forum:/forumpost/830d37b928|forum post 830d37b928].

FossilOrigin-Name: e994c9f29f7a561dd5f30573865b0f793fb1388af09a2afb9b1a5b037ea52f89

4 years agoFix an over-length source code comment in whereexpr.c. No logic changes.
drh [Fri, 14 May 2021 13:32:07 +0000 (13:32 +0000)] 
Fix an over-length source code comment in whereexpr.c.  No logic changes.

FossilOrigin-Name: af5eb902e7b13f50a8890098b85ae64a9d2ff4f122f3ab46ddb2c048b5c846a0

4 years agoModify the sqlite3_stmt_readonly() interface so that it returns false for
drh [Thu, 13 May 2021 18:24:22 +0000 (18:24 +0000)] 
Modify the sqlite3_stmt_readonly() interface so that it returns false for
CREATE TABLE IF NOT EXISTS statements even if the table already exists and
the statement is really a read-only no-op.  Likewise for DROP TABLE,
CREATE INDEX, and DROP INDEX.  Update the documentation for
sqlite3_stmt_readonly() to reflect this new behavior.

FossilOrigin-Name: cf8eb465974e596a13df56f3efbc98e098e7b74de9af4fde9ad58312db9750e4

4 years agoThe content columns of the index-btree that implements a WITHOUT ROWID
drh [Thu, 13 May 2021 13:43:40 +0000 (13:43 +0000)] 
The content columns of the index-btree that implements a WITHOUT ROWID
table are not ordered and so the query planner should not assume they
are ordered.  Fix for the issue identified by
[forum:/forumpost/6c8960f545|forum post 6c8960f545].

FossilOrigin-Name: c21bc5a2353e660f2acf5ed916921a4ee416910d0b3f2deb512a05c54138d1c0

4 years agoFurther simplification of the reverse-order scan logic of the previous
drh [Wed, 12 May 2021 22:15:44 +0000 (22:15 +0000)] 
Further simplification of the reverse-order scan logic of the previous
check-in.

FossilOrigin-Name: b2b0e23ba885f22c88b03492e42c3cd1cbd59289e452263951bb757a871699f0

4 years agoFix the query plan for an indexed lookup on a WITHOUT ROWID table with
drh [Wed, 12 May 2021 22:02:14 +0000 (22:02 +0000)] 
Fix the query plan for an indexed lookup on a WITHOUT ROWID table with
a DESC primary key when the primary key is constrained by an inequality.
See [forum:/forumpost/8988341615|forum post 8988341615]. Test cases in TH3.

FossilOrigin-Name: f65c929bf189cf5ca5f1cacdbbb8eec014c9960f767b135023bd2323cd26f279

4 years agoFix a race condition that can lead to deadlock in the memdb VFS if one
drh [Wed, 12 May 2021 15:39:02 +0000 (15:39 +0000)] 
Fix a race condition that can lead to deadlock in the memdb VFS if one
thread is trying to open an existing database at the same moment that
another thread that is the only prior user of that database is trying to
close it.

FossilOrigin-Name: b635375dbe22bd31c437ca574eb0c014c0b045de6cc0816c32d2ceceff9191fb

4 years agoAdd the new threadtest5 test program for stressing multiple database
drh [Wed, 12 May 2021 14:17:20 +0000 (14:17 +0000)] 
Add the new threadtest5 test program for stressing multiple database
connections in the same process hammering on a single database.
Primarily designed to test memdb, but works on any database.

FossilOrigin-Name: 8db1c06958b8e1691440d4fd392648b74a1940b721852dabd315005efad520fc

4 years agoEnhance the memdb VFS so that it is able to share databases among multiple
drh [Wed, 12 May 2021 11:55:59 +0000 (11:55 +0000)] 
Enhance the memdb VFS so that it is able to share databases among multiple
database connections in the same process, as long as the database filename
begins with "/".  This provides a way for threads to share an in-memory
database without the use of shared-cache mode.

FossilOrigin-Name: 533fffc4a39b01c3aba75bd3271fd6ccd9516d9681ed04adbe19bd7de03f4c16

4 years agoRespond correctly to OOM during mutex allocation. memdb-enhancement
drh [Wed, 12 May 2021 02:52:20 +0000 (02:52 +0000)] 
Respond correctly to OOM during mutex allocation.

FossilOrigin-Name: 98dae595d861941bb0bcd12126ee02492587c466e6da579a58b5dc4a4d655917

4 years agoMark an unreachable branch as NEVER().
drh [Wed, 12 May 2021 02:09:01 +0000 (02:09 +0000)] 
Mark an unreachable branch as NEVER().

FossilOrigin-Name: 6c20d9d4b7c7986e8404142974a91dce7514ca574ee52ed5d036367aad396689

4 years agoFix a NEVER() that can sometimes be true.
drh [Tue, 11 May 2021 11:40:22 +0000 (11:40 +0000)] 
Fix a NEVER() that can sometimes be true.

FossilOrigin-Name: 8f9f1cbc4468d07d693b418be4d89771fd240ee4af34395d7da5b7709fe88f37

4 years agoFix a NEVER() that can sometimes be true.
drh [Tue, 11 May 2021 10:47:41 +0000 (10:47 +0000)] 
Fix a NEVER() that can sometimes be true.
dbsqlfuzz 9a86fb3830977e216fde061bfbe1c1e5c2e9bfc4

FossilOrigin-Name: f39666e64d6d32420170c54f874d8314eb8c6f91df625f7b28f9ccffb9474dc0

4 years agoEnhance the memdb VFS to provide the ability to share a single database
drh [Mon, 10 May 2021 23:48:46 +0000 (23:48 +0000)] 
Enhance the memdb VFS to provide the ability to share a single database
among multiple database connections.

FossilOrigin-Name: 0617c66ac213d406a9a21580227a57542d7f21c8750c854f549ab818d7a936bc

4 years agoEnable the sqlite3_serialize() and sqlite3_deserialize() interfaces by
drh [Sat, 8 May 2021 17:18:23 +0000 (17:18 +0000)] 
Enable the sqlite3_serialize() and sqlite3_deserialize() interfaces by
default.  Omit the SQLITE_ENABLE_DESERIALIZE option and replace it with
the SQLITE_OMIT_DESERIALIZE option.

FossilOrigin-Name: 6df3b03e00b1143be8fed3a39a58ce81063020275aa1ac13d87c84f1ceda6e27

4 years agoFix help-text typo in the CLI.
drh [Sat, 8 May 2021 11:57:35 +0000 (11:57 +0000)] 
Fix help-text typo in the CLI.

FossilOrigin-Name: 560753148a16a0032477e379af6f62d9357f69847f351cc9db6021ce1b5594ea

4 years agoDetect misuse of aggregate functions in the ORDER BY clause of a query
drh [Fri, 7 May 2021 15:46:36 +0000 (15:46 +0000)] 
Detect misuse of aggregate functions in the ORDER BY clause of a query
even if the query also contains window functions.

FossilOrigin-Name: 0d11d777c8d368f0b6e9faf3afccf7da1b041d303a68782e43aebd713aaecf51

4 years agoFixes for cksmvfs and rbu so that they work together.
dan [Thu, 6 May 2021 20:47:49 +0000 (20:47 +0000)] 
Fixes for cksmvfs and rbu so that they work together.

FossilOrigin-Name: f35f6972cdcf16915cc37908b65a3780742a1f75f65e974714b16e86f0c9e3f0

4 years agoRemove an assert() in FTS5 that can (rarely) be false in the event of an
drh [Thu, 6 May 2021 13:45:37 +0000 (13:45 +0000)] 
Remove an assert() in FTS5 that can (rarely) be false in the event of an
OOM while processing a corrupt database file.

FossilOrigin-Name: 5f12f89154843e83b1d69ea1652e881d583aa329df732af72dd59029cd7eb577

4 years agoImproved detection of oversized cells in balance_nonroot(), especially in
drh [Thu, 6 May 2021 11:02:55 +0000 (11:02 +0000)] 
Improved detection of oversized cells in balance_nonroot(), especially in
index b-trees when a cell is being moved from a child page into the parent
page in order to become a new divider cell.

FossilOrigin-Name: 9080d3d5f5aaddbb3410158bcc446649651b7dce3940eb3491620ec9208914b4

4 years agoProvide the sqlite3PrintMem() routine on SQLITE_DEBUG builds, which can be
drh [Wed, 5 May 2021 19:46:50 +0000 (19:46 +0000)] 
Provide the sqlite3PrintMem() routine on SQLITE_DEBUG builds, which can be
invoked from a debugger to get a summary of the status of an sqlite3_value
or Mem object.

FossilOrigin-Name: 5ac24179f5ef16dccc1b65248e33376c9748767b14c75c1056f3b0d08b7a89a7

4 years agoFix an undefined-integer-overflow problem in fts3.c.
dan [Wed, 5 May 2021 11:47:34 +0000 (11:47 +0000)] 
Fix an undefined-integer-overflow problem in fts3.c.

FossilOrigin-Name: a0bf931bd712037e44e8d7cac3c00a6715c1b451f222bad3184d3ecab1a4c7f4

4 years agoWhen applying the optimization that disables WHERE clause terms that drive
drh [Tue, 4 May 2021 23:21:35 +0000 (23:21 +0000)] 
When applying the optimization that disables WHERE clause terms that drive
indexes, make sure not to do so if the term being disabled is a transitive
constraint.  Fix for the problem identified by
[forum:forumpost/eb8613976a|forum post eb8613976a].

FossilOrigin-Name: f1f9b5de3c59489b94963685660b3ddc45eece5535b02fec399b6ece0e38563d

4 years agoAlso for the 0x20000 bit of ".wheretrace", show when WHERE clause terms are
drh [Tue, 4 May 2021 18:24:56 +0000 (18:24 +0000)] 
Also for the 0x20000 bit of ".wheretrace", show when WHERE clause terms are
disabled.

FossilOrigin-Name: 625fb253eecd6c10fce5d0127d516361df0c1d1661502b396fc418dcdb4ae999

4 years agoAdditional debugging output for whereScanNext() showing equivalence classes
drh [Tue, 4 May 2021 16:51:52 +0000 (16:51 +0000)] 
Additional debugging output for whereScanNext() showing equivalence classes
when the ".wheretrace" setting contains the 0x20000 bit.

FossilOrigin-Name: 9280e3d994656344d4feb346156df8a278da80181f6efe0ff8e0340b6f0f91cb

4 years agoBack out the EXISTS-to-IN optimization. It slows things down rather than
drh [Tue, 4 May 2021 12:07:16 +0000 (12:07 +0000)] 
Back out the EXISTS-to-IN optimization.  It slows things down rather than
speeds them up depending on the query.  And (see
[forum:/forumpost/8692d94725|forum post 8692d94725]) it sometimes results in
an incorrect answer.  We may come back and revisit this optimization later,
but for now it seems best just to disable it.

FossilOrigin-Name: 16252d73fa73569fd7506676f6ffbbcd43addfb105384fb74449d30ca720904a

4 years agoFix minor coverity warnings in the CLI.
drh [Mon, 3 May 2021 13:35:00 +0000 (13:35 +0000)] 
Fix minor coverity warnings in the CLI.

FossilOrigin-Name: 204086a94202fc631371b75c7a8286df2f66116399628ac27ef54533641b8f20

4 years agoFix a potential memory leak following OOM in the decimal extension.
drh [Mon, 3 May 2021 13:24:30 +0000 (13:24 +0000)] 
Fix a potential memory leak following OOM in the decimal extension.

FossilOrigin-Name: 5127f7376776e6220eb8f83a30aa6b823c23ae0ac76e7ae41b33ca4e03ce236a

4 years agoBack out the NEVER() inserted by [c7309ed3c7588c7e] because it is reachable
drh [Sat, 1 May 2021 12:09:36 +0000 (12:09 +0000)] 
Back out the NEVER() inserted by [c7309ed3c7588c7e] because it is reachable
after all.  dbsqlfuzz bc17a306a09329bba0ecc61547077f6178bcf321

FossilOrigin-Name: 20a4f3f12cdd8823d53d91025fa41e284c9f629b1d049eb486ff8dc4a1736e1f

4 years agoGuard against a NULL-pointer dereference following OOM in the JSON extension.
drh [Fri, 30 Apr 2021 16:12:40 +0000 (16:12 +0000)] 
Guard against a NULL-pointer dereference following OOM in the JSON extension.

FossilOrigin-Name: ea221f3c8e243a5dc4952e510cbe396614a24876bacdc04fb1ebd4127c7ef0d9

4 years agoFix a harmless "unused variable" warning when compiling with
drh [Fri, 30 Apr 2021 12:30:35 +0000 (12:30 +0000)] 
Fix a harmless "unused variable" warning when compiling with
-DSQLITE_COVERAGE_TEST.

FossilOrigin-Name: 0bef3fb11fb95d7ede82b59aea26e99e2e23b3bce48009181e691ea17ae78a61

4 years agoReduce API lifetime requirement for objects passed to sqlite3_bind_...() with SQLITE_...
larrybr [Thu, 29 Apr 2021 19:30:35 +0000 (19:30 +0000)] 
Reduce API lifetime requirement for objects passed to sqlite3_bind_...() with SQLITE_STATIC.
Also fix broken session doc links (by zapping refs.)

FossilOrigin-Name: 327eb4792f9b98f6220fd35ba744002d36ed53f43a016924117b3cea32343947

4 years agoFix the operation of the "-" argument to --load-dbsql in the fuzzcheck program.
drh [Thu, 29 Apr 2021 18:03:42 +0000 (18:03 +0000)] 
Fix the operation of the "-" argument to --load-dbsql in the fuzzcheck program.

FossilOrigin-Name: 1f18b3cbee7e1342fdd66e45ef744fea3db2ba4513943c0582ff8ef98974865e

4 years agoFix the IN-early-out optimization so that it works even for the corner case
drh [Thu, 29 Apr 2021 15:49:34 +0000 (15:49 +0000)] 
Fix the IN-early-out optimization so that it works even for the corner case
where the NULL bypass fires before the affinity of the LHS operator has been
set.  Fix for the problem described in
[forum:/forumpost/6a3ec138e9|forum post 6a3ec138e9].

FossilOrigin-Name: eb40248ce606b792a02e4e0b7dd826a82891c5f4c9793f3ca5d332e593109525

4 years agoEnhanced "PRAGMA vdbe_trace=on" output associated with the seekHit flag.
drh [Thu, 29 Apr 2021 13:58:28 +0000 (13:58 +0000)] 
Enhanced "PRAGMA vdbe_trace=on" output associated with the seekHit flag.

FossilOrigin-Name: 683950009300657b0321d7d3f77f2585a28696ff93cedef399d1cd4aa484b2d4

4 years agoFix harmless compiler warnings.
drh [Thu, 29 Apr 2021 13:37:36 +0000 (13:37 +0000)] 
Fix harmless compiler warnings.
See [forum:/forumpost/256140e470|forum post 256140e470].

FossilOrigin-Name: 1b8da7924cc78710ae4bbe12b57140fdaeae5efb0e6ac10073ae9c98b7f8d7a4

4 years agoUpdate test/fuzzdata8.db with recent dbsqlfuzz finds.
drh [Thu, 29 Apr 2021 10:48:50 +0000 (10:48 +0000)] 
Update test/fuzzdata8.db with recent dbsqlfuzz finds.

FossilOrigin-Name: bce2ea393a872b5b70ef3b9cedce3d406725dcc56d8800ee4f7ec29562cc3f9b

4 years agoIgnore the TEMP or TEMPORARY keyword on CREATE statements which parsing
drh [Wed, 28 Apr 2021 17:37:26 +0000 (17:37 +0000)] 
Ignore the TEMP or TEMPORARY keyword on CREATE statements which parsing
the schema out of an existing database file.  Those keywords should never be
there.  This change simply adds robustness in case a legacy or damaged database
is seen.

FossilOrigin-Name: 65ec39f0f092fe29e1d4e9e96cf07a73d2ef7ce2c41b6f1cd3ab23546ada0e67

4 years agoAdjust a VDBE coverage macros due to the enhancement at [506333742103c1f4].
drh [Wed, 28 Apr 2021 15:43:36 +0000 (15:43 +0000)] 
Adjust a VDBE coverage macros due to the enhancement at [506333742103c1f4].

FossilOrigin-Name: daed59b4f96a6899d2404274ad985be3f22f407c1502b3f8ffd7977441a9fe9a

4 years agoFurther improvements to the handling of RETURNING clauses on changes
drh [Tue, 27 Apr 2021 17:18:10 +0000 (17:18 +0000)] 
Further improvements to the handling of RETURNING clauses on changes
to TEMP tables with triggers.
dbsqlfuzz 683913e98f54fe4f14e8dd11a48011f73bdca58d

FossilOrigin-Name: ff3538ae37a02f4f36a15cddd1245171e724aac9c84b2e576980fd3806302775

4 years agoRETURNING bug fix: Correctly deal with RETURNING statements on changes to
drh [Tue, 27 Apr 2021 13:04:18 +0000 (13:04 +0000)] 
RETURNING bug fix:  Correctly deal with RETURNING statements on changes to
TEMP tables that also have triggers.
dbsqlfuzz 78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2

FossilOrigin-Name: d0b15eccbfe1e50c3daf7b2fd4769a52bba35d553b07e462ca3f5f22df6742fd

4 years agoFix a segfault that could occur when querying a corrupt data structures with an fts5t...
dan [Tue, 27 Apr 2021 11:28:57 +0000 (11:28 +0000)] 
Fix a segfault that could occur when querying a corrupt data structures with an fts5token table.

FossilOrigin-Name: cbedfa05501f3eb9750fb21e2ab8516f8f14c479c847f454e52572af278aab71

4 years agomerge latest trunk
larrybr [Tue, 27 Apr 2021 04:47:27 +0000 (04:47 +0000)] 
merge latest trunk

FossilOrigin-Name: 3ff228249adf2da345d3e19e9af3e23d1354f6b9a35ddbe9864e1a07716d871c

4 years agoBetter error messages on showdb.
drh [Tue, 27 Apr 2021 00:05:03 +0000 (00:05 +0000)] 
Better error messages on showdb.

FossilOrigin-Name: 7e18e114b245d17aa259ea9ab42752ccc9ad5303bbac8d8e46928dd10319f545

4 years agoImproved robustness of the "showdb" debugging program when it is parsing
drh [Mon, 26 Apr 2021 23:57:02 +0000 (23:57 +0000)] 
Improved robustness of the "showdb" debugging program when it is parsing
corrupt database files.

FossilOrigin-Name: 3eabac2ee50fd70b22a927d3d2934718a15e1f666d8d271b854579156c8b01de

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Mon, 26 Apr 2021 22:30:49 +0000 (22:30 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 88d20500c516fe89ad1cd42f7366ca190c3790f911f11ab332b86b675f5f69ba

4 years agoFix the [/info/df1d6482f9e92daf|UNION ALL flattener optimization] so that it
drh [Mon, 26 Apr 2021 21:23:01 +0000 (21:23 +0000)] 
Fix the [/info/df1d6482f9e92daf|UNION ALL flattener optimization] so that it
works better with recursive CTEs.
dbsqlfuzz 88ed5c66789fced139d148aed823cba7c0926dd7

FossilOrigin-Name: f80d7bb2c305c1dd4658767660b33259032c048a91f18c654a6bda7332c54a0c

4 years agoAdd ALWAYS() to branches that are no longer reachable due to recent
drh [Mon, 26 Apr 2021 21:00:51 +0000 (21:00 +0000)] 
Add ALWAYS() to branches that are no longer reachable due to recent
enhancements.

FossilOrigin-Name: 63c50fbdeed831ba450d1dce67e968a7daa2b69ac1270eb271fb1e1873d4a07e

4 years agorefix altertab.test
larrybr [Mon, 26 Apr 2021 20:18:08 +0000 (20:18 +0000)] 
refix altertab.test

FossilOrigin-Name: db032156932fb0dcae5ffb7cbdfb711079daa595713fcb254f09f8ef90c81d95

4 years agoFix a problem that could cause a crash in sqlite3BtreeDelete() when operating on...
dan [Mon, 26 Apr 2021 15:32:36 +0000 (15:32 +0000)] 
Fix a problem that could cause a crash in sqlite3BtreeDelete() when operating on a corrupt database file.

FossilOrigin-Name: 6c6334660dfe81cc33a14b87b25d748b1c98b0702b7bc6db2e3ced16dc992740

4 years agoMore aggressive detection of OOM errors in resolveAlias().
drh [Mon, 26 Apr 2021 15:28:06 +0000 (15:28 +0000)] 
More aggressive detection of OOM errors in resolveAlias().
dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2

FossilOrigin-Name: e99faf4f82746761c389e24db1b00ee94b9f849e7bcb29517fa0ca10290afc41

4 years agoWhen doing the optimization that attempts to avoid sorting on a
drh [Mon, 26 Apr 2021 14:32:48 +0000 (14:32 +0000)] 
When doing the optimization that attempts to avoid sorting on a
GROUP BY, do not assume that the values in an index on an expression are
non-NULL.  Bug discovered by Wang Ke's fuzzer and reported at
[forum:/forumpost/74330094d8|forum post 74330094d8].

FossilOrigin-Name: 7178dc3a32c3a4a33e437fd5026f6f72e4809ceb7d2cd12a25a74b80d5c95d33

4 years agoDo not initialize eponymous virtual tables when parsing the schema. This can happen...
dan [Mon, 26 Apr 2021 14:09:48 +0000 (14:09 +0000)] 
Do not initialize eponymous virtual tables when parsing the schema. This can happen if the db is corrupt.

FossilOrigin-Name: cb8c41aa20bb351c4c712ed7a3617187ceeb0905ede1e6f561bc1d89f31c95ea

4 years agoSkip test when no JSON.
larrybr [Sun, 25 Apr 2021 23:13:04 +0000 (23:13 +0000)] 
Skip test when no JSON.

FossilOrigin-Name: 6fcb2438f88a70ed67e19103bfa263a6c98b06962207f153559c9516d8c7b5d5

4 years agoMake window range queries more robust against corrupt database files.
drh [Sat, 24 Apr 2021 23:40:05 +0000 (23:40 +0000)] 
Make window range queries more robust against corrupt database files.
dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99.

FossilOrigin-Name: 506333742103c1f440db5da819a36f3b518f7b49e94a7b74419b02bbcadc5a78

4 years agoTreat byte-order marks (BOMs) at the start of a token as whitespace.
drh [Sat, 24 Apr 2021 12:24:08 +0000 (12:24 +0000)] 
Treat byte-order marks (BOMs) at the start of a token as whitespace.
This enhancement is inspired by
[forum:/forumpost/ed8f696a20|forum post ed8f696a20].

FossilOrigin-Name: 3d55c21c167631f42d155aadec544e629bd078de9992aa5a74694d08bc52052b

4 years agoFix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing
drh [Sat, 24 Apr 2021 12:20:10 +0000 (12:20 +0000)] 
Fix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing
ALTER TABLE on eponymous virtual tables.

FossilOrigin-Name: 32255e39cbde65492d88177464cee9e10cb20cf3105208416be131e2c89b63e1

4 years agoFix harmless compiler warnings in fuzzcheck.
drh [Fri, 23 Apr 2021 13:57:53 +0000 (13:57 +0000)] 
Fix harmless compiler warnings in fuzzcheck.

FossilOrigin-Name: e7b4ffecc610c494ebd506977402ec48cc799780f96c6293c0ccf27697160aa1

4 years agoEnhance the --load-dbsql and related options of fuzzcheck so that if the
drh [Fri, 23 Apr 2021 12:58:16 +0000 (12:58 +0000)] 
Enhance the --load-dbsql and related options of fuzzcheck so that if the
argument is a single - then filenames are read from standard input.

FossilOrigin-Name: e1548802b6de7037baf388d27a7f3658abafe07b6f48d5ec97e5f644303592d8

4 years agoGive a better final output line for the --spinner option on fuzzcheck.
drh [Fri, 23 Apr 2021 12:16:16 +0000 (12:16 +0000)] 
Give a better final output line for the --spinner option on fuzzcheck.

FossilOrigin-Name: 93729614e21ee674b83b0d2babb71bb758f1a2ec55bf9bda057fb7739f2e14e0

4 years agoNew dbsqlfuzz cases added to test/fuzzdata8.db.
drh [Fri, 23 Apr 2021 11:50:23 +0000 (11:50 +0000)] 
New dbsqlfuzz cases added to test/fuzzdata8.db.

FossilOrigin-Name: 8da88508932e475c8c6af1553268ff02e3e013b78ccc94b14532ec928fc62537