dan
7525b87b6c
Posible fix for [d96eba87].
...
FossilOrigin-Name: 89a25abfcd069aebdf817890e5c27f46de3000fb858ae01029e4528f9d677567
2018-12-14 08:40:11 +00:00
drh
203b1ea0f5
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
2018-12-14 03:14:18 +00:00
drh
f354e77f3d
Fix the dbtotxt decoder in the CLI so that it ignores excess bytes.
...
FossilOrigin-Name: 18740bd448887d618fafee0b5a7c004aa2f2632244f7d29e2428772baa36b828
2018-12-13 22:58:52 +00:00
drh
6301c43f23
dbfuzz2 found a NEVER() that is sometimes true.
...
FossilOrigin-Name: 1201615cbbd3070158ea5fab3d2c8c95f41b25d6da096a44cb9257a7b7405efc
2018-12-13 21:52:18 +00:00
drh
8061ad8abd
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
2018-12-13 21:11:22 +00:00
drh
1641f11f4c
Fix a problem in sqlite3BtreeDelete() in which deleting an entry from a
...
corrupt database can leave a btree page with zero cells.
FossilOrigin-Name: 682053d1e603c21b8085c39db618a39b23ec8d2c4d822fd19634db0e03038ea2
2018-12-13 21:05:45 +00:00
drh
f7e74904cc
Add the "decode_hexdb" TCL command to testfixture. Add the dbfuzz001.test
...
module to demonstration how to use decode_hexdb to deserialize a dbtotxt
database description for use in a corruption test.
FossilOrigin-Name: 1f583c53f3b7318c69f6e235934d97ef9493278feeab0837217076d7d071c35b
2018-12-13 20:49:43 +00:00
drh
2c8ee026ba
Fix the CLI to keep proper track of input line numbers for use in error
...
messages, even after processing in-line hex database inputs using
".open --hexdb".
FossilOrigin-Name: 7ffa9858162774cba03a565a7b65135d9e8bfea726af1a29de6898f66c4b1261
2018-12-13 18:59:30 +00:00
drh
60379d4243
Fix the CLI so that the ".open --hexdb" command works even if it is contained
...
in a subscript that is read using ".read".
FossilOrigin-Name: 67a87399b8ad8f1ce3052ee3159906f5c6df3d7b5691b3acac856bd2f1c82088
2018-12-13 18:30:01 +00:00
drh
51caa04836
Merge the dbtotxt enhancement from trunk.
...
FossilOrigin-Name: b386fce9a23e628dce7362dcca2904b8d0af6da58a6fe6eb7f12f058a8363e49
2018-12-13 15:52:31 +00:00
drh
3374648545
Add the "dbtotxt" utility program and the ability to read "dbtotxt" output
...
as a deserialized input database in the CLI, using the --hexdb option to
the ".open" command.
FossilOrigin-Name: e3bf1d3ea5f748c5142c2403813fdace5aedc1fc68f0dcd5eae40a2fe763fedb
2018-12-13 15:06:26 +00:00
drh
5881dfea2c
New database corruption test cases discovered by dbfuzz2. The new cases
...
have been added to test/fuzzdata7.db, but have not yet all been fixed,
so tests will not currently pass.
FossilOrigin-Name: b4210d320c6426d2838d4cc08709fdfd015c1c95fcad9a5f9e8fd390c23b9fad
2018-12-13 03:36:13 +00:00
drh
cb0e04f929
Fix another problem found by Matthew Denton's new fuzzer.
...
FossilOrigin-Name: 2b690dbdffe144bd69ca0aa291c230faf3d9d73f7a2985d50f016fe54003f9a9
2018-12-12 21:34:17 +00:00
drh
89b6de0357
Remove an ALWAYS() from a branch that is not always taken. The test case
...
found by OSSFuzz has been added to TH3.
FossilOrigin-Name: 5c7dab85535ac42c021977dbd4a39cef5a72e3d9dccff1c5ca5570a1780516cd
2018-12-12 20:11:23 +00:00
drh
03c5c21328
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be
...
true. Test case added to TH3.
FossilOrigin-Name: 23b62fb160d86dc9d9073bcc714601f5b7695f96abd893eafecf4b2e565b87f2
2018-12-12 11:23:40 +00:00
drh
cfc078318c
Small performance improvement in sqlite3_step().
...
FossilOrigin-Name: d1db8d5894450b24bb0335983503d9bbf6cc48a0ae4b83291283fb2d32b6b25b
2018-12-11 12:51:46 +00:00
drh
368bfe8b00
Small performance improvement in the sqlite3_bind() family of interfaces.
...
FossilOrigin-Name: 1dc0c3df32572f09265fc73eeaa0748159e0e9523b9b2d6768b834a29c909968
2018-12-11 12:20:41 +00:00
drh
1a6c2b1d38
Further refinements to the sqlite3_normalized_sql() interface. TH3 now
...
gives 100% MC/DC on that interface.
FossilOrigin-Name: c96bf6cca220e363b099455ce35195ce7e89d374a52dc787f56e7b11e587bced
2018-12-10 20:01:40 +00:00
drh
9042ff214b
Fix issues with the new normalizer.
...
FossilOrigin-Name: 057d7d40c56b7416a59a79cb627b2b3e5837eca2d6dbcb50127baaadf1941f51
2018-12-10 16:49:33 +00:00
drh
643d855da9
Refactor the sqlite3_normalized_sql() implementation. This is a
...
work-in-progress. There are still issues.
FossilOrigin-Name: a4c890b0af9786295e6df05022009d8946550adb873535c610be805c2b7a4083
2018-12-10 16:00:57 +00:00
drh
2134eb5721
Merge fixes from trunk.
...
FossilOrigin-Name: ab1e58fac9e3f9d7d90cefb39f8f145d211d38ec0cb393208c4531cc646056c1
2018-12-10 00:40:43 +00:00
drh
d4a4a36171
Do not use a partial index as a table scan in an IN operator.
...
Fix for ticket [1d958d90596593a77420e59].
FossilOrigin-Name: 15bc915dd7ae25bfdfbe357c3792db3639799e4d121c6b5b24297af2d6d7129e
2018-12-08 20:30:31 +00:00
drh
a50bffb85e
Add the --async option to the ".backup" command in the CLI.
...
FossilOrigin-Name: 7b6a605b1883dfcbe237b0a58f6f0c233a109e88b521c3b3d97198526c8a0317
2018-12-08 01:09:14 +00:00
drh
2f6239ed4e
Allow the INTO clause of VACUUM to be a text-valued expression.
...
FossilOrigin-Name: af172b53b46759f491f522356e14c5e2374d3f25ec70fbc1e100cadded8f9b22
2018-12-08 00:43:08 +00:00
drh
7464f578ed
Do not allow VACUUM INTO into a file that already exists.
...
FossilOrigin-Name: 92f70e0fa3c9de7fde046f11cc0a7c2800511bb5ace8e68c845133931607616e
2018-12-07 23:48:41 +00:00
drh
52993b31e1
Merge the VACUUM simplification from trunk.
...
FossilOrigin-Name: 93d92a0a5d21a1856316c0205ecaa253691b6e5349b552d43027005676d14820
2018-12-07 20:40:12 +00:00
drh
83da91b7bd
Remove a line of code from VACUUM that is no longer needed, due to the
...
change that allows ATTACH to run within a transaction.
FossilOrigin-Name: a92c398fc5df142ff1459c1be4a6832f2219bc7fabe5789535be3bbd41a4269b
2018-12-07 20:26:29 +00:00
drh
b0b7db91b8
Prototype implementation for the VACUUM INTO command.
...
FossilOrigin-Name: 036e3320a4af36c1311b25b2e504b0079c8b33df8ad7b7e5fddad07150e6f87d
2018-12-07 17:28:28 +00:00
drh
893bd3751b
Fix the sqlite3_normalized_sql() interface so that it renders
...
double-quoted string literals as "?".
FossilOrigin-Name: 0d8e150434bbd179696f1ffe71d1e06cb3d43e6468496c7e481fca8486387bad
2018-12-07 16:32:11 +00:00
drh
a37b6a5e31
Performance improvement: Avoid using sqlite3WalkerSelectExpr()
...
and sqlite3WalkerSelectFrom() twice, so that the compiler will in-line their
implementation.
FossilOrigin-Name: 2b9258b8b0342330ebe8c22b59ec276fd042a05547d15b24fdf29e16280868de
2018-12-06 22:12:18 +00:00
drh
a838997544
Fix the sqlite3ExprDup() routine so that it makes complete duplications of
...
subqueries containing window functions.
FossilOrigin-Name: 940174543e87184a0278fcd02e8a096a11510174d9c1d65d21878819790ddaff
2018-12-06 22:04:19 +00:00
drh
11df7d2839
Simplify the query flattener so that it does not duplicate the WHERE clause
...
of subquery that is being incorporated into the outer query - copies it
directly. This is more efficient. And it also fixes the specific test case
show for ticket [f09fcd17810f65f71789525] but it does not resolve the more
general problem that sqlite3ExprDup() does not correctly duplicate expressions
that contain subqueries with window functions.
FossilOrigin-Name: f1b18d44ff855573542c1947a42d4025dff54cacc13dac14d044521762ea9736
2018-12-06 19:15:36 +00:00
drh
d5b44d60c7
When masking bits off of sqlite3.flags, make sure the mask is 64 bits
...
in size so as not to accidentally mask of high-order bits.
FossilOrigin-Name: 53d3b169d8e1892163526caff2c843302c92e280fdeff6831e23a9bb15b82be3
2018-12-06 17:06:02 +00:00
drh
70d5dfba68
When saving off the value of sqlite3.flags, take care to preserve all 64
...
bits.
FossilOrigin-Name: 9c6dbcfab5952cf4e54de30cf9cee48f988b91a35dc3f04d64d6d994dd84a076
2018-12-06 16:50:55 +00:00
drh
ec8fc62c42
Issue a warning whenever a double-quoted string literal is used.
...
FossilOrigin-Name: ac9ad5043026b30394812457e1535df2759aea0d4510029561e92e386672796f
2018-12-06 16:11:14 +00:00
drh
3e2d47d49f
Invoking the sqlite3_trace() or sqlite3_trace_v2() interfaces cancels
...
any sqlite3_profile() that is running.
FossilOrigin-Name: ec63d3506bd429560077f82a4c5ed9d189780789fe1c134fff4f3b8733be1a3f
2018-12-06 03:59:25 +00:00
drh
fc08a1aef8
Remove the unused pColHash field from the Table object.
...
FossilOrigin-Name: 3a2c047989facc3461c63a2f9eed412014c951035a80da47c52a70139fb552de
2018-12-06 02:01:17 +00:00
drh
974b24896a
Fix a potential NULL pointer dereference that can occur in ALTER TABLE
...
following an OOM. Test case in TH3.
FossilOrigin-Name: ea50815bf80ab0d36891518f209acbcd3d6d8d84529741bffd4e841874c78aff
2018-12-06 01:53:12 +00:00
drh
1f169fefca
Fix a missing mutex in the sqlite3_normalized_sql() interface when it is
...
called on a prepared statement that did not previously have a computed
normalization of the input SQL.
FossilOrigin-Name: 1a1a59c6c570879c8f318bbc132103c0285088ba233dd8c32e049b86419347b0
2018-12-06 01:08:58 +00:00
drh
7b278f0c3d
Get rid of the hash table used to track IN operators in the
...
sqlite3_normalized_sql() implementation. Use simple integer variables
instead.
FossilOrigin-Name: 272dc74fd0304d6a28aaa8798d13e2f950c1a24d92d17519e3c32aef86714586
2018-12-05 23:56:02 +00:00
drh
253a6af532
The sqlite3_normalized_sql() interface should not be transforming quoted
...
identifier names into wildcards. Fix this, and at the same time simplify
the code substantially.
FossilOrigin-Name: e8540377ec66fa5f9ae3c93bedb5c094057698199c37fc211f7ea95429e815e4
2018-12-05 23:45:46 +00:00
drh
d4a4dd6ebc
Fix an imbalanced lock problem in sqlite3Normalize() introduced by the
...
simplification in [94ea6379178e3ff6a].
FossilOrigin-Name: f69624373e33c4d370a9264a317ffdb0adbce967a950f243de2b41161a8c7ded
2018-12-05 21:55:39 +00:00
drh
19efd0db41
Simplifications to the sqlite3_normalized_sql() implementation.
...
FossilOrigin-Name: 94ea6379178e3ff6a0d1d5819ca4ac558bdadb1ca8a3637c797079db7dc0cd61
2018-12-05 17:48:57 +00:00
dan
ea41251eb0
Ensure that ALTER TABLE modifies table and column names embedded in WITH
...
clauses that are part of views and triggers.
FossilOrigin-Name: f44bc7a8b3fac82aa5598e9bdaf65ea4dd3c331cf90c1d5ba26ff1698e92c230
2018-12-05 13:49:04 +00:00
drh
707821ff72
Enhance the sqlite3_normalize_sql() interface so that it works even if the
...
prepared statement was not initially compiled using
SQLITE_PREPARE_NORMALIZED. Enhance the ".trace" command in the CLI so that
it is able to access the full scope of functionality provided by
sqlite3_trace_v2() and in particular so that it is able to show normalized
SQL output using the newly enhanced sqlite3_normalize_sql() interface.
FossilOrigin-Name: 7da617e97eb905cb009c47403786682b911e32a630f266e1c53ea72836fc88b5
2018-12-05 13:39:06 +00:00
drh
04c6747a80
Performance improvement in sqlite3_step() by creating a new mTrace flag
...
for the legacy xProfile pointer that is set by sqlite3_profile().
FossilOrigin-Name: e28584e8bc7b7405380064b60523fa6191f827f74075f6d117eb7732d752ba5e
2018-12-04 14:33:02 +00:00
drh
b7de827137
Small performance increase in sqlite3_step() for the common case where
...
it returns SQLITE_ROW.
FossilOrigin-Name: 893448265299f4c70c32c8e92ea66f8d33c1c213b21701f73fa3815514cd5ef6
2018-12-04 13:51:26 +00:00
drh
de72d2a81a
Remove two lines of unnecessary code, for a very small performance increase
...
and size decrease.
FossilOrigin-Name: 15824ccda0f110794a479b58fbf36082d8c383f34bae9dc0921d96547fb37869
2018-12-03 01:58:02 +00:00
drh
4a5cff73a7
Fix a parser bug in the use of parentheses around table-valued functions.
...
FossilOrigin-Name: 58a51123d1a6381cc67d3c64ba3468ec5a92c299ad6fd86de0b843d0ffafb846
2018-12-03 01:47:41 +00:00
drh
fdc75c9f53
Omit a line of code that has no affect on the outcome.
...
FossilOrigin-Name: 5d933aa659eb7a13f9ab44fe7762be292a1c3c75b957a3b7e0bc6188257b62f4
2018-12-02 01:15:16 +00:00