]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoGive symbolic names to the special prepared statements used to implement named-blob-I/O
drh [Sun, 6 Jan 2019 01:46:00 +0000 (01:46 +0000)] 
Give symbolic names to the special prepared statements used to implement
incremental blob I/O.

FossilOrigin-Name: 2a1cc6327a3d8f2f65a296f5bed7fb43665b812c4c45871798db917a99481c14

6 years agoAdd the exprNodeCopy() routine that will safely memcpy() an Expr node that
drh [Sat, 5 Jan 2019 21:56:12 +0000 (21:56 +0000)] 
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that
might be a size-reduced node.

FossilOrigin-Name: a874c649960ba2e2b2fd380d08c02a45884a1060d3922be8847729008ca6766e

6 years agoIf the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any
drh [Sat, 5 Jan 2019 21:09:37 +0000 (21:09 +0000)] 
If the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any
rows out of the sqlite_master table, that indicates that the sqlite_master
table is corrupt, so raise an SQLITE_CORRUPT error.

FossilOrigin-Name: 598d7358e7329f0de6e3defc217665909e46874258ac29592ee2fd53e6411cda

6 years agoFix two more problems with corrupt database handling in fts5.
dan [Sat, 5 Jan 2019 07:17:56 +0000 (07:17 +0000)] 
Fix two more problems with corrupt database handling in fts5.

FossilOrigin-Name: 444c7c99beb9f8b82963e9784aa2be54124c7011f4771122b4f608c02aa26408

6 years agoGive a meaningful error on an attempt to use UPSERT on a virtual table,
drh [Fri, 4 Jan 2019 23:39:37 +0000 (23:39 +0000)] 
Give a meaningful error on an attempt to use UPSERT on a virtual table,
rather than simply not working.

FossilOrigin-Name: fa98748f956cff95fcfda3a513cea4df27aa573ae795a6855c40bfeca661d0b2

6 years agoIf the ".open" command fails in the CLI, reopen to :memory: so that at least
drh [Fri, 4 Jan 2019 14:29:21 +0000 (14:29 +0000)] 
If the ".open" command fails in the CLI, reopen to :memory: so that at least
some database is available for subsequent commands.

FossilOrigin-Name: d7f55c62c3fa053b9b930a044b60076a8278cbf679d8e5116b95f2ff19247f6b

6 years agoRemove debugging pragmas accidently left in by a prior change.
drh [Fri, 4 Jan 2019 12:46:01 +0000 (12:46 +0000)] 
Remove debugging pragmas accidently left in by a prior change.

FossilOrigin-Name: 26275fc7e89eb2542a65d01fd271cef016a4a1815bc3845c599cf2f4fbf7513d

6 years agoFix a typo in a comment used to generate documentation. No functional changes.
drh [Fri, 4 Jan 2019 12:35:50 +0000 (12:35 +0000)] 
Fix a typo in a comment used to generate documentation.  No functional changes.

FossilOrigin-Name: ccc4f7424bc8f37c168333091dd9e3d6f80ccff9e2b06f182df65be59a7e3349

6 years agoFix another fts5 assert() that may fail if the database is corrupt.
dan [Fri, 4 Jan 2019 11:20:14 +0000 (11:20 +0000)] 
Fix another fts5 assert() that may fail if the database is corrupt.

FossilOrigin-Name: 0888fc2e881d56ccd5222383d1a08cdf16fbd15c40da7ebfc14346be69ffb26a

6 years agoFix some problems with sqlite3_interrupt() handling in fts5.
dan [Thu, 3 Jan 2019 19:12:21 +0000 (19:12 +0000)] 
Fix some problems with sqlite3_interrupt() handling in fts5.

FossilOrigin-Name: c0eb839a3c23612b93002d2e1fbc41bf5db140775267989f85db52146144750b

6 years agoFix the csv01.test module so that it works on systems with \r\n line endings.
drh [Thu, 3 Jan 2019 16:03:48 +0000 (16:03 +0000)] 
Fix the csv01.test module so that it works on systems with \r\n line endings.

FossilOrigin-Name: 36eaf5a5e51b20699328aae67c2bfd325f81bea342e2b167fddd859a50a26e28

6 years agoFix the shmlock.test script so that it works with the Windows restriction
drh [Thu, 3 Jan 2019 16:00:23 +0000 (16:00 +0000)] 
Fix the shmlock.test script so that it works with the Windows restriction
that UnlockFile must exactly correspond to a prior LockFile.

FossilOrigin-Name: df939c89fa90b7f9ccf961027ca4eca4f987c49eabf530b5719a83e5ab0d346d

6 years agoFix a harmless compiler warning in the CSV extension.
drh [Thu, 3 Jan 2019 15:22:33 +0000 (15:22 +0000)] 
Fix a harmless compiler warning in the CSV extension.

FossilOrigin-Name: fbcd72565f4425016cebbbf5dfd6aa510234cfb31c785cf364f04fff444aacae

6 years agoFix a problem with the second and subsequent sqlite3rbu_savestate() calls made
dan [Thu, 3 Jan 2019 15:17:01 +0000 (15:17 +0000)] 
Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made
on an RBU vacuum handle.

FossilOrigin-Name: bef216dfa1456a787e3d9c74936ee1c6600827d4e252bd13e7a93046ce07469f

6 years agoFix the geopoly_svg() function so that it returns NULL when given zero
drh [Thu, 3 Jan 2019 00:44:03 +0000 (00:44 +0000)] 
Fix the geopoly_svg() function so that it returns NULL when given zero
arguments.

FossilOrigin-Name: 120cb1768338eb86412fb69d4c7677247775bb37875ab3a98766cffd535f04cf

6 years agoFix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5.
drh [Wed, 2 Jan 2019 23:49:47 +0000 (23:49 +0000)] 
Fix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5.

FossilOrigin-Name: 703029ac6d24860230a8c30fcbf5e7e1da619e84f1cc9b9e65ebc74879a184d2

6 years agoAdd another test case to vacuum-into.test.
dan [Wed, 2 Jan 2019 16:01:59 +0000 (16:01 +0000)] 
Add another test case to vacuum-into.test.

FossilOrigin-Name: 0465d2fc0d3f8beaa1b6b0bd7bd51d69a524f30d889c9402e7d02cc06164a310

6 years agoAdd test cases for commit [6c6fb1c6].
dan [Wed, 2 Jan 2019 15:27:27 +0000 (15:27 +0000)] 
Add test cases for commit [6c6fb1c6].

FossilOrigin-Name: 3961995cb56b43f1753c53fc869edf336f1c17ec994d67dc74e44e8e02493894

6 years agoRaise an error if the argument to VACUUM INTO is an identifier.
drh [Wed, 2 Jan 2019 14:34:46 +0000 (14:34 +0000)] 
Raise an error if the argument to VACUUM INTO is an identifier.

FossilOrigin-Name: 6c6fb1c6ea452c70b56fd4ac796affebee21512adba0455ae81c291b715f544f

6 years agoFix another fts5 problem caused by a corrupt database.
dan [Tue, 1 Jan 2019 19:17:42 +0000 (19:17 +0000)] 
Fix another fts5 problem caused by a corrupt database.

FossilOrigin-Name: 911342f7512145a8a189bb0ec59e70e4c9ddc9f20f3e84816ab25139ead5dc45

6 years agoEnsure that when a new cursor is opened by OP_OpenDup, any existing cursor
dan [Tue, 1 Jan 2019 18:00:17 +0000 (18:00 +0000)] 
Ensure that when a new cursor is opened by OP_OpenDup, any existing cursor
with the same id opened by a previous OP_OpenDup is closed first.

FossilOrigin-Name: 5c188361a91407805c0feb4bf6d3214522ce3e55013efcf63a4613ecd416bcbc

6 years agoFix another case in fts5 where a corrupt database could cause a buffer
dan [Tue, 1 Jan 2019 13:59:34 +0000 (13:59 +0000)] 
Fix another case in fts5 where a corrupt database could cause a buffer
overread.

FossilOrigin-Name: f7e6cdc5625664f449d0edbe39af2d45910c4137bfd856ae1f770dd826c138ff

6 years agoFix harmless compiler warnings.
drh [Mon, 31 Dec 2018 21:43:55 +0000 (21:43 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: b57c545a384ab5d62becf3164945b32b1e108b2fb4c8dbd939a1706c2079e18b

6 years agoAdditional steps to help ensure that scalar subqueries are only evaluated
drh [Mon, 31 Dec 2018 20:39:37 +0000 (20:39 +0000)] 
Additional steps to help ensure that scalar subqueries are only evaluated
once even if they are used in multiple places within the query.  This fixes
a performance regression reported on the mailing list and caused by
check-in [531eca6104e41e43] which was a fix for ticket
[787fa716be3a7f650c]. Think of this check-in as an improved fix for
that ticket.

FossilOrigin-Name: e130319317e761193890ef75787a3c114b61166f518df019697be8e2c820ec54

6 years agoRemove an optimization that can no longer occur, being superceded by the
drh [Mon, 31 Dec 2018 20:13:12 +0000 (20:13 +0000)] 
Remove an optimization that can no longer occur, being superceded by the
subquery-reuse optimization.  Put an assert in place of the optimization
to detect if the need for this optimization ever returns.

FossilOrigin-Name: 4fcdc7a2939457e51aab37cab168677cd7f464a9a0aff4f8981e864a30828b3b

6 years agoMerge enhancements and bug fixes from trunk.
drh [Mon, 31 Dec 2018 18:30:41 +0000 (18:30 +0000)] 
Merge enhancements and bug fixes from trunk.

FossilOrigin-Name: 9fb646f29c05bca5f677a2c7c4f45c36bfe0a0c6a88cb7968b4a0459bdd63bb2

6 years agoSmall changes to the OP_OpenEphemeral opcode to improve testability.
drh [Mon, 31 Dec 2018 17:58:05 +0000 (17:58 +0000)] 
Small changes to the OP_OpenEphemeral opcode to improve testability.

FossilOrigin-Name: f856676c8438dbf52d299e78f6dd6148d929755dc05cdcabafd17d9a86439435

6 years agoFix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called
drh [Mon, 31 Dec 2018 16:36:42 +0000 (16:36 +0000)] 
Fix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called
a second or subsequent time, it merely clears the existing table rather than
creating a new one.  Proposed fix for ticket [d0866b26f83e9c55e30de0821f5d].

FossilOrigin-Name: 4678cb1044f0b4dc813e48f3bd0f85240a66e2ecf8763280d66726cc031c93a7

6 years agoAdditional small performance increase and size reduction to the
drh [Sat, 29 Dec 2018 14:23:22 +0000 (14:23 +0000)] 
Additional small performance increase and size reduction to the
sqlite3VdbeMakeLabel() mechanism.

FossilOrigin-Name: 1bdee199a71e0a6c247b85e72de9e3a3099b7179c33288735721facef3b96459

6 years agoA new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer
drh [Sat, 29 Dec 2018 02:26:59 +0000 (02:26 +0000)] 
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer
memory allocations by deferring memory allocation until
sqlite3VdbeResolveLabel() is called, at which point the code generator has
a better idea of how big the relocation table needs to be.
The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of
Vdbe*.

FossilOrigin-Name: 4a0929ac76d8aa5dd65eac3b83d6bbf41e505e01d175ca0fb2b19ba02d439415

6 years agoMerge performance enhancements from trunk.
drh [Fri, 28 Dec 2018 21:32:35 +0000 (21:32 +0000)] 
Merge performance enhancements from trunk.

FossilOrigin-Name: 0f1b9ff9e1e6f13e03045fcb7d0907227085054f9eb0b0b8471fb26b0094b13a

6 years agoFaster allocation of new sqlite3_stmt objects.
drh [Fri, 28 Dec 2018 20:48:07 +0000 (20:48 +0000)] 
Faster allocation of new sqlite3_stmt objects.

FossilOrigin-Name: 891f1f72187f0f9ec0d24fda98cc08be3ae3c3ff8b27c4e409ee7135c3106398

6 years agoMove the nOpAlloc field from Parse into Vdbe to avoid an extra pointer
drh [Fri, 28 Dec 2018 20:14:03 +0000 (20:14 +0000)] 
Move the nOpAlloc field from Parse into Vdbe to avoid an extra pointer
deference on the fast path in sqlite3VdbeAddOp3().

FossilOrigin-Name: 8f10efc29dea7b816b1ba401726c268950d6671d890f686911269082a241d8d9

6 years agoMerge patches and enhancements from trunk.
drh [Fri, 28 Dec 2018 19:23:20 +0000 (19:23 +0000)] 
Merge patches and enhancements from trunk.

FossilOrigin-Name: da53f3d3ff26cc32d3a5ac788b6785baa3d1688e50d9354025a3130dc7e71a38

6 years agoFix another problem with loading the structure record from a corrupt fts5
dan [Fri, 28 Dec 2018 18:09:45 +0000 (18:09 +0000)] 
Fix another problem with loading the structure record from a corrupt fts5
database.

FossilOrigin-Name: c4d44542d259bbec11aea60ae94fcb4acd53e97e125723cae078cf0f8873f8ef

6 years agoFix a problem causing the sqlite_master entry corresponding to a virtual table
dan [Fri, 28 Dec 2018 17:45:08 +0000 (17:45 +0000)] 
Fix a problem causing the sqlite_master entry corresponding to a virtual table
to be removed by a DROP TABLE even if the call to the vtabs xDestroy() method
failed.

FossilOrigin-Name: 0140f6dbfbea93eadcd7f727d84064a0c0d1f0806dbe3e5ef1017da603157e3b

6 years agoAvoid an undefined left-shift operation in fts5 caused by malformed utf-8
dan [Fri, 28 Dec 2018 14:33:55 +0000 (14:33 +0000)] 
Avoid an undefined left-shift operation in fts5 caused by malformed utf-8
text.

FossilOrigin-Name: c3a3a11194586bef80a9d7ca54caae8af30d4e7b464b8bb3d257ba2d2ec4791f

6 years agoFix a buffer overwrite in fts5 triggered by a corrupt database.
dan [Fri, 28 Dec 2018 13:57:30 +0000 (13:57 +0000)] 
Fix a buffer overwrite in fts5 triggered by a corrupt database.

FossilOrigin-Name: a385298df264dbfa6765f63ad8708f74bc8e8a1404239c1049890b39a1bda888

6 years agoFix problems in fts5 found by ASAN.
dan [Fri, 28 Dec 2018 07:37:22 +0000 (07:37 +0000)] 
Fix problems in fts5 found by ASAN.

FossilOrigin-Name: c564bf870106faef297594a51995619c80311d06bd5f8a0c7644f666f22ba576

6 years agoFix another problem with corrupt database handling in fts5.
dan [Thu, 27 Dec 2018 20:12:02 +0000 (20:12 +0000)] 
Fix another problem with corrupt database handling in fts5.

FossilOrigin-Name: fb0d7fba07865ff557bfcdacfda7b625d099ac8b4dcbe0c08cd2d4b84a068bb9

6 years agoModify the btree02.test module so that it does not depend on whether TCL
drh [Thu, 27 Dec 2018 16:55:01 +0000 (16:55 +0000)] 
Modify the btree02.test module so that it does not depend on whether TCL
interprets a value as a string or as an integer.

FossilOrigin-Name: d9e4f9574659c6285deba3dca68eca9989e615971cea3a901ffcda12fb4ee36f

6 years agoFix another problem in fts5 caused by a corrupt schema record.
dan [Thu, 27 Dec 2018 15:36:16 +0000 (15:36 +0000)] 
Fix another problem in fts5 caused by a corrupt schema record.

FossilOrigin-Name: ff45f9dd69fe1e1c7875e5bb73ac3dde2a31746475d3765cda9233f8e06e26ca

6 years agoFix the filename normalization in the dbtotxt utility program.
drh [Thu, 27 Dec 2018 13:52:45 +0000 (13:52 +0000)] 
Fix the filename normalization in the dbtotxt utility program.

FossilOrigin-Name: 29a00a05dd40ff59be340969e1aca4fee41e092f2faa1cea85a3448265a83c2c

6 years agoFix a null-pointer dereference that could occur in fts5 with a corrupt
dan [Thu, 27 Dec 2018 07:46:37 +0000 (07:46 +0000)] 
Fix a null-pointer dereference that could occur in fts5 with a corrupt
database.

FossilOrigin-Name: b0a49d5e6df116bb5eacb60a0bb0f482760aec38bd417d4250d9e57d43bdbb13

6 years agoFix a problem in which nested CTEs with the same table name trick the
drh [Thu, 27 Dec 2018 02:16:01 +0000 (02:16 +0000)] 
Fix a problem in which nested CTEs with the same table name trick the
code generator into thinking they are the same CTE, which then tries to
use the manifest them both into the same transient table.

FossilOrigin-Name: 202dd033019dd27428e3cc5f6e164c95b37efe39e2753515112b201ddefca67b

6 years agoIn the treeview debugging output,
drh [Thu, 27 Dec 2018 00:30:42 +0000 (00:30 +0000)] 
In the treeview debugging output,
provide additional details for the Table object
associated with each FROM clause term.

FossilOrigin-Name: 11d4682d2eec133ccca99ca9cf2620cd249b4afe55918f3ebf93b454431f9c55

6 years agoUpdate the coverage-wal permutation to cover branches enabled by
dan [Wed, 26 Dec 2018 18:34:56 +0000 (18:34 +0000)] 
Update the coverage-wal permutation to cover branches enabled by
SQLITE_ENABLE_SNAPSHOT.

FossilOrigin-Name: 6821c61f1d71be2be7f867e59fd94582a1eaf45a4d1fb88be995807a77cc22ea

6 years agoAdd a few more test cases to walvfs.test.
dan [Wed, 26 Dec 2018 17:49:57 +0000 (17:49 +0000)] 
Add a few more test cases to walvfs.test.

FossilOrigin-Name: 14a64df36efe0dc36795311d58385f9c65dc465b214059e07c2ee6b95ea99c87

6 years agoAvoid an "unitialized value read" problem in fts5 that can occur with a
dan [Wed, 26 Dec 2018 16:57:47 +0000 (16:57 +0000)] 
Avoid an "unitialized value read" problem in fts5 that can occur with a
corrupt database.

FossilOrigin-Name: 6cae81cd1ffb0180e0260d5ba921502c7dee2f54637bff3558a4d1cb5dfd3f32

6 years agoFix a problem with handling corrupt databases in the fts5 integrity-check
dan [Wed, 26 Dec 2018 16:04:54 +0000 (16:04 +0000)] 
Fix a problem with handling corrupt databases in the fts5 integrity-check
function.

FossilOrigin-Name: 9bad745d373f4686a2726c3f77a2ccad60e7181645d7ed483a2e43075a4ef30c

6 years agoFix a problem with corrupt fts3 database detection introduced by [95a9a39f].
dan [Wed, 26 Dec 2018 14:15:09 +0000 (14:15 +0000)] 
Fix a problem with corrupt fts3 database detection introduced by [95a9a39f].

FossilOrigin-Name: c80bb15b44e9b6a3c0c5a49d5e93e66376c3520ecefc1db7425c8a7e09d3eade

6 years agoFix a problem with the CSV extension when it uses the "header" option on
drh [Wed, 26 Dec 2018 12:50:47 +0000 (12:50 +0000)] 
Fix a problem with the CSV extension when it uses the "header" option on
a real file.

FossilOrigin-Name: 7acaed08f946633fca3ab8434dd6349ea6f1bac4fd9ec21f476db013ee06de30

6 years agoFix a typo in a comment that is used to generate session documentation.
drh [Tue, 25 Dec 2018 11:17:50 +0000 (11:17 +0000)] 
Fix a typo in a comment that is used to generate session documentation.

FossilOrigin-Name: a1f50d57ce76f6c08a0ddbdd3c3fe2732d0e57dda14cb9aa3da00a14ceb4bc44

6 years agoIncrease the number of parameters to sqlite3WhereCodeOneLoopStart() to
drh [Tue, 25 Dec 2018 00:15:37 +0000 (00:15 +0000)] 
Increase the number of parameters to sqlite3WhereCodeOneLoopStart() to
encourage the compiler to inline that routine within sqlite3WhereBegin().
This gives a performance improvement.

FossilOrigin-Name: 3c2ad0e915e835b1cb2962879beff50b2745d0cefe1cfc89ef90b7879c139ce6

6 years agoImprovements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows
drh [Mon, 24 Dec 2018 20:21:06 +0000 (20:21 +0000)] 
Improvements to EXPLAIN QUERY PLAN formatting.  The MULTI-INDEX OR now shows
a separate "INDEX" subtree for each index.  SCALAR SUBQUERY entries provide
a subquery number that is related back to the .selecttrace output.

FossilOrigin-Name: 7153552bac51295c56a1c42ca79d57195851e232509f9e9610375692f48c7e86

6 years agoAdd a few more test cases to walfault2.test and walvfs.test.
dan [Mon, 24 Dec 2018 20:00:27 +0000 (20:00 +0000)] 
Add a few more test cases to walfault2.test and walvfs.test.

FossilOrigin-Name: 3873941c4fb9aa2d0de1129722c5fcdf2be1ea261677d4841ed99f896c778459

6 years agoChange another fts5 assert() that may fail with a corrupt database to an
dan [Mon, 24 Dec 2018 19:59:37 +0000 (19:59 +0000)] 
Change another fts5 assert() that may fail with a corrupt database to an
assert_nc().

FossilOrigin-Name: d9653380c455b4bf6c371540d677cbde6d17664c58662b5cc9a12929f46192dd

6 years agoAdd test cases to test file walvfs.test.
dan [Mon, 24 Dec 2018 18:51:13 +0000 (18:51 +0000)] 
Add test cases to test file walvfs.test.

FossilOrigin-Name: d697f6f3ca47350dad30feb529914fc5254fa662ece783408eea963d912918c1

6 years agoAlways include OP_Explain opcodes in the bytecode when SQLITE_DEBUG is enabled.
drh [Mon, 24 Dec 2018 18:10:39 +0000 (18:10 +0000)] 
Always include OP_Explain opcodes in the bytecode when SQLITE_DEBUG is enabled.

FossilOrigin-Name: d8c1235c02b745138ac2b12e8bbb00dda4cac321176be92a2fa9547be029b3d0

6 years agoCopy some extra test infrastructure from the mutexfree-shmlock branch to trunk.
dan [Mon, 24 Dec 2018 15:22:47 +0000 (15:22 +0000)] 
Copy some extra test infrastructure from the mutexfree-shmlock branch to trunk.

FossilOrigin-Name: 883337ffdb434b6856ceaada121c0be67e2fdec7b447675f45e85568ef28d7d9

6 years agoRestore a line of code that was previously commented out for debugging.
drh [Mon, 24 Dec 2018 14:30:11 +0000 (14:30 +0000)] 
Restore a line of code that was previously commented out for debugging.

FossilOrigin-Name: e53781f5bdf5c7b7d91ffe76565ea2fe5d1b3a9b162b3a88a7017bbe785d4c72

6 years agoChange the way a comparison used to detect corrupt databases in fts3 is done
dan [Mon, 24 Dec 2018 13:34:36 +0000 (13:34 +0000)] 
Change the way a comparison used to detect corrupt databases in fts3 is done
to avoid potential pointer overflow in 32-bit builds.

FossilOrigin-Name: 95a9a39ff784b960b62dd6298e722a620ba3f9c8b76839a49bbef35d7bc84a8e

6 years agoDo not generate subroutines for non-static SELECT and EXISTS expressions.
drh [Mon, 24 Dec 2018 12:09:47 +0000 (12:09 +0000)] 
Do not generate subroutines for non-static SELECT and EXISTS expressions.
Fix up some test cases to account for the minor changes in EXPLAIN QUERY PLAN
output.

FossilOrigin-Name: 06de44ec9e173992ca9afb89dd2b4e40d2a7e35512c7959603cdceb606f5dfbd

6 years agoPrevent the use of subroutines to implement the RHS of IN operators within
drh [Mon, 24 Dec 2018 11:55:44 +0000 (11:55 +0000)] 
Prevent the use of subroutines to implement the RHS of IN operators within
CHECK constraints.

FossilOrigin-Name: 6b24d3fb94e787d25e49501714780dfb0c0c99077102056aa68445f4808cdd57

6 years agoExperimental code that tries to put the computation of subqueries inside a
drh [Mon, 24 Dec 2018 02:34:49 +0000 (02:34 +0000)] 
Experimental code that tries to put the computation of subqueries inside a
subroutine, and reuse that subroutine if the same subquery is evaluated more
than once.  Current code does not work for CHECK constraints.

FossilOrigin-Name: 6c44838adbe5dc482bc010e91a6dd7a0f777c989f443dd600740d2c783208e0d

6 years agoSplit the code generation for the RHS of IN operators and for SELECT and
drh [Sun, 23 Dec 2018 21:27:29 +0000 (21:27 +0000)] 
Split the code generation for the RHS of IN operators and for SELECT and
EXISTS expressions into two separate subroutines, because there is now little
commonality between those to functions. This is intended to help make the
code easier to read and maintain.

FossilOrigin-Name: 2b6494b1509f0d0189f98aa34c990eee99c775ff57826e79b2c5b0a12b4c97ad

6 years agoImprove the coverage of wal.c provided by the "coverage-wal" test permutation.
dan [Sat, 22 Dec 2018 20:32:28 +0000 (20:32 +0000)] 
Improve the coverage of wal.c provided by the "coverage-wal" test permutation.

FossilOrigin-Name: 6231485114eb07b258cd0e6e163ca05f7e9cf5664e071808fcb1329b33e4c4f5

6 years agoCatch another case of a corrupted structure record in fts5.
dan [Sat, 22 Dec 2018 19:54:17 +0000 (19:54 +0000)] 
Catch another case of a corrupted structure record in fts5.

FossilOrigin-Name: fb17fea4b9779fbd3adb6ff9500da83a6ca4fa7cba379aa70074e4328814a7f2

6 years agoChange a faulty assert() in fts5 that could fail on a corrupt db to an if() statement.
dan [Sat, 22 Dec 2018 19:09:46 +0000 (19:09 +0000)] 
Change a faulty assert() in fts5 that could fail on a corrupt db to an if() statement.

FossilOrigin-Name: 1daaba9fb46706af8ed0669a661c304df999a69cf639d29d93208f422c515d8c

6 years agoFix one more instance of excess whitespace in test result strings.
drh [Sat, 22 Dec 2018 16:14:45 +0000 (16:14 +0000)] 
Fix one more instance of excess whitespace in test result strings.

FossilOrigin-Name: c064964deb0b7220ba784f07ca9c603680f3c8bb936d56ab4eca1962beac1359

6 years agoRemove unnecessary whitespace from testcase result strings.
drh [Sat, 22 Dec 2018 15:46:23 +0000 (15:46 +0000)] 
Remove unnecessary whitespace from testcase result strings.

FossilOrigin-Name: ad70f03ceda74163903d247a975666b35fae722a27c48dd3efd31c1164b5627e

6 years agoFix an assert() in fts5 that could fail with a corrupt database.
dan [Sat, 22 Dec 2018 15:21:31 +0000 (15:21 +0000)] 
Fix an assert() in fts5 that could fail with a corrupt database.

FossilOrigin-Name: 83935b950619855fb3bf05486091804ac2a61fb993c6ec826c89f943264fabc3

6 years agoFix a "jump or move depends on uninitialized value" valgrind error that could
dan [Sat, 22 Dec 2018 13:34:52 +0000 (13:34 +0000)] 
Fix a "jump or move depends on uninitialized value" valgrind error that could
occur in fts5 when dealing with a corrupt database.

FossilOrigin-Name: 3518c09b944c92974939b1de244401afd34de5d9aa75050e5ad55581a94e1e71

6 years agoAvoid a left-shift of a negative value (undefined behaviour) when dealing with a...
dan [Sat, 22 Dec 2018 09:39:06 +0000 (09:39 +0000)] 
Avoid a left-shift of a negative value (undefined behaviour) when dealing with a corrupt database in
fts3.

FossilOrigin-Name: b851d12474035328df8354c7da8d81bc78833c8c704153f9f573c19b47a8487e

6 years agoFix cut-and-paste error in test file fts4umlaut.test.
dan [Sat, 22 Dec 2018 07:16:42 +0000 (07:16 +0000)] 
Fix cut-and-paste error in test file fts4umlaut.test.

FossilOrigin-Name: cad5da1bf5f65ad87d97b72e9a84081fde455ba4085e79943fdf6c0144b1ef83

6 years agoDo not all REPLACE to sneak a NULL value into a NOT NULL column. Detect that
drh [Sat, 22 Dec 2018 01:13:25 +0000 (01:13 +0000)] 
Do not all REPLACE to sneak a NULL value into a NOT NULL column.  Detect that
situation and ABORT instead.  Fix for ticket [e6f1f2e34dceeb1ed61531c7e98].

FossilOrigin-Name: db8d1d12f5c1673404b2afb5426d5ea3afe3b69d01f8f2bc47ffdf70684fdf24

6 years agoThe OP_Eq and OP_Ne operators have a special P5 value SQLITE_NOTNULL that
drh [Sat, 22 Dec 2018 00:34:30 +0000 (00:34 +0000)] 
The OP_Eq and OP_Ne operators have a special P5 value SQLITE_NOTNULL that
asserts that the values are not null.  Except that is not always true for
a corrupt database.  Adjust the assert() and add a testcase() to make this
point clear.

FossilOrigin-Name: a3fdb2c78d23b94d68dc08126b22d03152ac6068496a42402cdfb336cd4a7e33

6 years agoUpdate the dbtotxt utility program so that it does not output characters that
drh [Fri, 21 Dec 2018 22:11:37 +0000 (22:11 +0000)] 
Update the dbtotxt utility program so that it does not output characters that
are special to TCL, thus making the output of dbtotxt easier to insert into
test scripts.

FossilOrigin-Name: 48438bb35b48955a1df83ef90f0ef6c9cfed0b16d2e938f36d74ad9d53b4b5b4

6 years agoImproved detection of shadow table corruption in RTREE.
drh [Fri, 21 Dec 2018 22:08:59 +0000 (22:08 +0000)] 
Improved detection of shadow table corruption in RTREE.

FossilOrigin-Name: b39bf4356e6bcf1d8442721d6cbbfe06caba01325104fb469da8fe69e1f623a2

6 years agoAdd new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for
dan [Fri, 21 Dec 2018 20:18:06 +0000 (20:18 +0000)] 
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for
preparing statements that are not allowed to use any virtual tables.
Use this to prevent circular references in triggers on virtual table
shadow tables from causing resource leaks.

FossilOrigin-Name: da587d18575ac06a6b65fec1d106f0cc65bc10f493ca6c6b99117a2162d15a52

6 years agoUse SQLITE_PREPARE_NO_VTAB in rtree as well. prepare-no-vtab
dan [Fri, 21 Dec 2018 19:55:20 +0000 (19:55 +0000)] 
Use SQLITE_PREPARE_NO_VTAB in rtree as well.

FossilOrigin-Name: 82a2ae7132964eab0dfad9a8314a399ffd3b72366b35e1767df6452125dd1d80

6 years agoAdd tests for the use of SQLITE_PREPARE_NO_VTAB in fts5.
dan [Fri, 21 Dec 2018 19:30:18 +0000 (19:30 +0000)] 
Add tests for the use of SQLITE_PREPARE_NO_VTAB in fts5.

FossilOrigin-Name: 1999612010e310fc2430d1f00076f69fade0c66d202771dbb0f3d5597ac0a03c

6 years agoAdd new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing
dan [Fri, 21 Dec 2018 19:29:11 +0000 (19:29 +0000)] 
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing
statements that are not allowed to use any virtual tables. Use this to prevent
circular references in triggers on virtual table shadow tables from causing
resource leaks.

FossilOrigin-Name: 25666e3d03950caf753295cdb55df162e07dbcf6840b05875c6e0b127c469ecb

6 years agoIn FTS3, avoid calling memcpy() with a NULL source pointer, even if the
drh [Fri, 21 Dec 2018 18:51:27 +0000 (18:51 +0000)] 
In FTS3, avoid calling memcpy() with a NULL source pointer, even if the
transfer amount is zero bytes.

FossilOrigin-Name: 1abb83d29a06308c96bea379311b390240347c5f81824749348d18ad75840c96

6 years agoThe fts4umlaut.test module requires FTS5, so do not try to run it without that
drh [Fri, 21 Dec 2018 18:50:43 +0000 (18:50 +0000)] 
The fts4umlaut.test module requires FTS5, so do not try to run it without that
module.

FossilOrigin-Name: dee3ae900129d39d69aff3ec6187376be100803ee6170bbf39529f37b4253260

6 years agoFix the node hash function in RTREE to ensure that it always returns a
drh [Fri, 21 Dec 2018 18:17:35 +0000 (18:17 +0000)] 
Fix the node hash function in RTREE to ensure that it always returns a
non-negative value.

FossilOrigin-Name: 0bf4c70a6849da74797e8616a4f3730492ad02882ae67a0fe0f3b3cc3f1043b4

6 years agoFix a potential NULL-pointer deference in RTREE due to corrupt shadow tables.
drh [Fri, 21 Dec 2018 17:51:30 +0000 (17:51 +0000)] 
Fix a potential NULL-pointer deference in RTREE due to corrupt shadow tables.

FossilOrigin-Name: 1fdd3604eef880414682e9e6f74d714520fe1c63f267ec4da752d2dc1da6bf72

6 years agoPrevent an infinite loop in rtree that can result from a corrupt shadow table.
drh [Fri, 21 Dec 2018 16:53:58 +0000 (16:53 +0000)] 
Prevent an infinite loop in rtree that can result from a corrupt shadow table.

FossilOrigin-Name: 085667180b230587abb82abfdd14da8859e23620994d5cf152236b64c756dd04

6 years agoFix the RTree extension so that it correctly ignores constraints that it
drh [Fri, 21 Dec 2018 15:13:49 +0000 (15:13 +0000)] 
Fix the RTree extension so that it correctly ignores constraints that it
does not understand, even if they are against a dimension column.

FossilOrigin-Name: ed8531e57596f0d5911a05a26d5ae61e1eccfaadee49219d7f6e212cac288238

6 years agoIn RTREE, turn an assert() into an if() because the condition can
drh [Fri, 21 Dec 2018 13:30:34 +0000 (13:30 +0000)] 
In RTREE, turn an assert() into an if() because the condition can
sometimes be false when dealing with a corrupt database.

FossilOrigin-Name: 99bce4358beb5dbaba47048ee2eec5c376dcd86e5b1462238a37ea4c5f3d77db

6 years agoRemove an assert() that could fail on a corrupt db from fts3_write.c.
dan [Fri, 21 Dec 2018 11:53:43 +0000 (11:53 +0000)] 
Remove an assert() that could fail on a corrupt db from fts3_write.c.

FossilOrigin-Name: 4cdcda408a4edcd2845584ddef64f0efdd2b4cc030afbc05fc2b8b555c69d3f6

6 years agoDo not set the Cursor.seekOp test variable in the OP_NotExists opcode.
drh [Thu, 20 Dec 2018 22:08:32 +0000 (22:08 +0000)] 
Do not set the Cursor.seekOp test variable in the OP_NotExists opcode.
This is a change to test logic only and does not affect deliverable builds.

FossilOrigin-Name: 98f343077887c4d3fc2ca3bbc7f20c80ec37b0e521d70af9c986ab80bb2c7903

6 years agoFix a bug in the code that detects self-referencing rows as part of foreign
dan [Thu, 20 Dec 2018 17:32:33 +0000 (17:32 +0000)] 
Fix a bug in the code that detects self-referencing rows as part of foreign
key processing. Fix for [50d2a6c2].

FossilOrigin-Name: 16fff05347f42fe9fa0f3150290b98b59a9bb921e49dc07ca397aa1de7a7e17d

6 years agoFix a segfault caused by using the RAISE function incorrectly (library now
dan [Thu, 20 Dec 2018 15:04:38 +0000 (15:04 +0000)] 
Fix a segfault caused by using the RAISE function incorrectly (library now
returns an error instead of crashing).

FossilOrigin-Name: ddf06db702761d663119d508afe21d7dfebe963d576bb42fc2f2024205ab86f8

6 years agoIn defensive mode, do not allow shadow tables to be renamed using ALTER TABLE.
dan [Tue, 18 Dec 2018 20:31:14 +0000 (20:31 +0000)] 
In defensive mode, do not allow shadow tables to be renamed using ALTER TABLE.

FossilOrigin-Name: 23e200da5cfbde0798e67cd9e016e4a1cd73b67981e1af841493fcd123d8f547

6 years agoMove variable declaration to address compilation issue (C89).
mistachkin [Mon, 17 Dec 2018 22:19:57 +0000 (22:19 +0000)] 
Move variable declaration to address compilation issue (C89).

FossilOrigin-Name: d64f248da3ce7762fe2c17fbc83f7bea9ffca73723bb3ad0982a85320839da90

6 years agoFix errors in comments in fts5.h.
dan [Sat, 15 Dec 2018 07:12:34 +0000 (07:12 +0000)] 
Fix errors in comments in fts5.h.

FossilOrigin-Name: 4002790d9418289f3e090c694f651a89d8f523119c8ce2f396999b0387148241

6 years agoFix harmless compiler warnings.
drh [Fri, 14 Dec 2018 18:11:02 +0000 (18:11 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 27221c69901d2b4546167639c4a3c8f54b2e18820f1346870fa26b7c919027db

6 years agoFix possible integer overflow while running PRAGMA integrity_check on a
drh [Fri, 14 Dec 2018 17:57:01 +0000 (17:57 +0000)] 
Fix possible integer overflow while running PRAGMA integrity_check on a
database file with a badly corrupted freelist.

FossilOrigin-Name: 395599116d801324f0763e59bc5e2fc8622aa5b7572e0c1c9a982efbb3cc8280

6 years agoBack out the expansion of the temporary buffer size from
drh [Fri, 14 Dec 2018 16:20:54 +0000 (16:20 +0000)] 
Back out the expansion of the temporary buffer size from
[32754ca6f86da816] and replace it with an explicit test for buffer
overreads.

FossilOrigin-Name: 8ba3d9f38090c4bbbcffba1930e5c26f69ff61f49b72a4a5a59253d37341380f