]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Fri, 11 Jan 2019 15:06:39 +0000 (15:06 +0000)]
Add new documentation file begin_concurrent.md.
FossilOrigin-Name:
fdbf97e611ed23f86dc0df9d53421fb04226af0d1c7171d55c11acd0dbe935f0
dan [Wed, 2 Jan 2019 16:08:14 +0000 (16:08 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
5bf212f1a754fde90af0af82dd76f636754829c7372e19df1fd4fa579f0926aa
dan [Wed, 2 Jan 2019 16:01:59 +0000 (16:01 +0000)]
dan [Wed, 2 Jan 2019 15:27:27 +0000 (15:27 +0000)]
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
dan [Tue, 1 Jan 2019 19:17:42 +0000 (19:17 +0000)]
Fix another fts5 problem caused by a corrupt database.
FossilOrigin-Name:
911342f7512145a8a189bb0ec59e70e4c9ddc9f20f3e84816ab25139ead5dc45
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
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
drh [Mon, 31 Dec 2018 21:43:55 +0000 (21:43 +0000)]
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
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
drh [Mon, 31 Dec 2018 18:30:41 +0000 (18:30 +0000)]
Merge enhancements and bug fixes from trunk.
FossilOrigin-Name:
9fb646f29c05bca5f677a2c7c4f45c36bfe0a0c6a88cb7968b4a0459bdd63bb2
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
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
dan [Sat, 29 Dec 2018 20:42:12 +0000 (20:42 +0000)]
Fix a problem causing a corrupt pager-cache if an OOM or IO error was
encountered while committing a concurrent transacation.
FossilOrigin-Name:
48ca30f9d7817d87a5e9a069fdc51b1a34e00585f8a35771895dd743c7bfe07c
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
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
drh [Fri, 28 Dec 2018 21:32:35 +0000 (21:32 +0000)]
drh [Fri, 28 Dec 2018 20:48:07 +0000 (20:48 +0000)]
Faster allocation of new sqlite3_stmt objects.
FossilOrigin-Name:
891f1f72187f0f9ec0d24fda98cc08be3ae3c3ff8b27c4e409ee7135c3106398
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
drh [Fri, 28 Dec 2018 19:23:20 +0000 (19:23 +0000)]
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
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
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
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
dan [Fri, 28 Dec 2018 07:37:22 +0000 (07:37 +0000)]
dan [Thu, 27 Dec 2018 20:12:02 +0000 (20:12 +0000)]
Fix another problem with corrupt database handling in fts5.
FossilOrigin-Name:
fb0d7fba07865ff557bfcdacfda7b625d099ac8b4dcbe0c08cd2d4b84a068bb9
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
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
drh [Thu, 27 Dec 2018 13:52:45 +0000 (13:52 +0000)]
Fix the filename normalization in the dbtotxt utility program.
FossilOrigin-Name:
29a00a05dd40ff59be340969e1aca4fee41e092f2faa1cea85a3448265a83c2c
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
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
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
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
dan [Wed, 26 Dec 2018 17:49:57 +0000 (17:49 +0000)]
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
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
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
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
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
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
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
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
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
dan [Mon, 24 Dec 2018 18:51:13 +0000 (18:51 +0000)]
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
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
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
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
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
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
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
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
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
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
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
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
drh [Sat, 22 Dec 2018 15:46:23 +0000 (15:46 +0000)]
Remove unnecessary whitespace from testcase result strings.
FossilOrigin-Name:
ad70f03ceda74163903d247a975666b35fae722a27c48dd3efd31c1164b5627e
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
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
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
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
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
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
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
drh [Fri, 21 Dec 2018 22:08:59 +0000 (22:08 +0000)]
Improved detection of shadow table corruption in RTREE.
FossilOrigin-Name:
b39bf4356e6bcf1d8442721d6cbbfe06caba01325104fb469da8fe69e1f623a2
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
dan [Fri, 21 Dec 2018 19:55:20 +0000 (19:55 +0000)]
Use SQLITE_PREPARE_NO_VTAB in rtree as well.
FossilOrigin-Name:
82a2ae7132964eab0dfad9a8314a399ffd3b72366b35e1767df6452125dd1d80
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
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
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
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
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
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
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
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
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
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
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
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
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
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
dan [Tue, 18 Dec 2018 17:20:01 +0000 (17:20 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
123cbb3312917ad5b3c32556547c5b7e8ba4e2d2def8651ff80f9fc1bdc1875c
mistachkin [Mon, 17 Dec 2018 22:19:57 +0000 (22:19 +0000)]
Move variable declaration to address compilation issue (C89).
FossilOrigin-Name:
d64f248da3ce7762fe2c17fbc83f7bea9ffca73723bb3ad0982a85320839da90
dan [Sat, 15 Dec 2018 07:12:34 +0000 (07:12 +0000)]
drh [Fri, 14 Dec 2018 18:11:02 +0000 (18:11 +0000)]
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
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
drh [Fri, 14 Dec 2018 16:00:38 +0000 (16:00 +0000)]
Avoid a buffer overread in ptrmapPutOvflPtr() that can occurs in a
corrupt database file that has large entries and uses autovacuum.
FossilOrigin-Name:
f8b781cf41800e9f61a1c5376404a97e76a2bbbcaa17396d42be62f731363947
drh [Fri, 14 Dec 2018 13:47:17 +0000 (13:47 +0000)]
Fix a harmless compiler warning in Sessions.
FossilOrigin-Name:
fc9791ea987352e3e1322fbb7f833c23b402432af8249f9d397c6f7456788637
drh [Fri, 14 Dec 2018 13:35:48 +0000 (13:35 +0000)]
Expand the size of the temporary page used during btree rebalancing by a
few bytes, to avoid problems with small buffer overreads that can occur
on corrupted database files.
FossilOrigin-Name:
32754ca6f86da8165e274f98f35fc3df3aebd273e9da08387e2d0c3c89abda0f
dan [Fri, 14 Dec 2018 13:18:35 +0000 (13:18 +0000)]
When saving the position of a cursor at the b-tree layer, allocate a few extra
bytes at the end of the buffer used to save the key. Otherwise, if the key is
corrupt, the code that restores the cursor position may overread the buffer by a
little.
FossilOrigin-Name:
160b1e31c0f27257c06c2987af9ec3a64abfacb2150325b72e8ccd3d217b5baa
drh [Fri, 14 Dec 2018 11:16:52 +0000 (11:16 +0000)]
Fix a problem with bytecode generation when a query involves two or more
indexes on expressions connected by OR.
Ticket [
d96eba87698a428c1ddd0790ea04 ]
FossilOrigin-Name:
7e4ed8b5c2047b69bbb037497111e56e465a4d9f8afca3b337f9ac744471dc4a
dan [Fri, 14 Dec 2018 08:40:11 +0000 (08:40 +0000)]
drh [Fri, 14 Dec 2018 03:16:17 +0000 (03:16 +0000)]
Fix a bug in fuzzcheck that cause it to overlook a pointer-map bug that was
trigger by the fuzzcheck test data, and also fix the pointer-map bug.
FossilOrigin-Name:
cc42dd15100db28a9796254f69a4e367ea5eae29f546be055017cf3e12aa66ba
drh [Fri, 14 Dec 2018 03:14:18 +0000 (03:14 +0000)]
Detect when an attempt is made to write to a pointer map page that is also
being used as a btree page and report corruption.
FossilOrigin-Name:
3036fd71ac7063359b04a0ed54a6c63a380eb7ff75cd29ed27486d4259066aee
drh [Fri, 14 Dec 2018 02:29:56 +0000 (02:29 +0000)]
Fix a bug in the custom in-memory VFS used by fuzzcheck. This bug masks
other bugs that should have caused some existing fuzzdata7.db entries to
fail, and so this fix is initially on a branch until those other bugs can
be repaired.
FossilOrigin-Name:
e0994e99955cf11f23dba029b5ed7f150f467887558848d5f03510e2fb5855f9
drh [Thu, 13 Dec 2018 22:58:52 +0000 (22:58 +0000)]
Fix the dbtotxt decoder in the CLI so that it ignores excess bytes.
FossilOrigin-Name:
18740bd448887d618fafee0b5a7c004aa2f2632244f7d29e2428772baa36b828
drh [Thu, 13 Dec 2018 21:52:18 +0000 (21:52 +0000)]
dbfuzz2 found a NEVER() that is sometimes true.
FossilOrigin-Name:
1201615cbbd3070158ea5fab3d2c8c95f41b25d6da096a44cb9257a7b7405efc
drh [Thu, 13 Dec 2018 21:11:22 +0000 (21:11 +0000)]
Add extra tests for database corruption inside the defragmentPage() routine,
as dbfuzz2 has found ways for corruption to leak into that point. Add test
cases in fuzzdata7.db.
FossilOrigin-Name:
997b65117f8c12dba5fb85434fde9765cdb0d2a49cc3e31979abba3e21350086