drh
00c3ef2df9
Fix a possible infinite loop in VACUUM that can come up when the schema
...
has been carefully corrupted. Problem discovered by OSSFuzz. Test cases
in TH3.
FossilOrigin-Name: 27754b74ddf6463c6f9c48ea0df3637945b5ea086b92a41ddeb55b9aaefea4c2
2018-02-12 13:30:34 +00:00
drh
8257aa8dbe
Add the new sqlite3.mDbFlags field. Factor out bits of sqlite3.flags that
...
do not interact with PRAGMA statements into sqlite3.mDbFlags.
FossilOrigin-Name: 3808a00f06d372cc531da039d97bd974e4a6576a30cf63bf562f83f186b313b3
2017-07-26 19:59:13 +00:00
drh
76cf858d3d
Prevent pagesize changes on VACUUM in encrypted databases even when running
...
the VACUUM on an attached database.
FossilOrigin-Name: 11693849342a308ad929e2d9ead67faabacb523af76128c6973ed6cc8b62c11e
2017-06-16 13:43:37 +00:00
drh
eeea412a9d
Add the SQLITE_BUG_COMPATIBLE_20160819 compile-time option to omit the error
...
message when an unrecognized argument is provided to the VACUUM command.
FossilOrigin-Name: 491814272dce7e937b4734fcbc2ad69e12377b56
2017-02-18 13:47:11 +00:00
dan
75ba676790
Fix an issue that was causing the new database image to be assembled entirely
...
in heap memory when VACUUMing a database, even if it should use a temp file.
This could cause SQLITE_NOMEM errors when vacuuming very large databases on
32-bit systems.
FossilOrigin-Name: 3028845329c9b7acdec2ec8b01d00d782347454c
2016-11-02 14:50:19 +00:00
drh
6a754dc767
Disable row counting on queries run while doing a VACUUM.
...
FossilOrigin-Name: ad35ef116296e5d6aaeb9ef260bf35bee3bd6d20
2016-08-19 15:12:38 +00:00
drh
9ef5e7708a
Add the capability to VACUUM an attached database by specifying the schema
...
name as an argument to the VACUUM command. Since version 2.0, VACUUM has
accepted an argument which was silently ignored. Now it has meaning.
FossilOrigin-Name: 29d63059b4d2bb612523ac55ebfef040d054a64f
2016-08-19 14:20:56 +00:00
drh
69c338263a
Rename the Db.zName field to Db.zDbSName to make it more descriptive and to
...
distinguish it from all of the other "zName" variables scattered throughout
the code.
FossilOrigin-Name: 92a22f01343a898455fd61c3b8e7d7c954f5b569
2016-08-18 14:33:11 +00:00
drh
9d60875901
Copy the cache_spill setting from the main database over to the
...
vacuum_db transient database when running a VACUUM.
FossilOrigin-Name: c0e7d98ef2a13ede5ae865083ede1aaffdf43310
2016-07-26 04:49:43 +00:00
drh
2b62b5def8
In the VACUUM command, set the cache_size of the transient vacuum_db database
...
to be the same as the database being vacuumed.
FossilOrigin-Name: b78d99548ac53ac10dcc38368cc4b29c8cbcb09b
2016-07-25 22:40:12 +00:00
drh
1637a5171f
Legacy tests now passing.
...
FossilOrigin-Name: f33526a341132435cb4185149a784eef6b3a1a2d
2016-07-13 23:18:27 +00:00
drh
3d2a529df6
First cut at implementing the new sqlite3_trace_v2() interface.
...
FossilOrigin-Name: cb0062feb018f52689938a58cb76886d431c33f0
2016-07-13 22:55:01 +00:00
mistachkin
fad3039c51
Enhance ability to debug out-of-memory errors.
...
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
2016-02-13 23:43:46 +00:00
dan
e34162b14f
When vacuuming an index that uses no collations other than BINARY, assume that the order of index entries will not be changed by the VACUUM.
...
FossilOrigin-Name: e403460b96814ac8cb976d58b27939b3bd3c61f9
2015-04-01 18:20:25 +00:00
drh
ad0961b31b
Keep track of the optimal number of reserved bytes (by looking at reserve
...
byte requests in calls to sqlite3BtreeSetPageSize()) and then change the
reserve byte count to the optimal when doing a VACUUM or when using the
backup API.
FossilOrigin-Name: 28c2b726285ea88b334acfd6390a057d2d244838
2015-02-21 00:19:25 +00:00
drh
86a11b8a6a
Fix harmless typos in comments.
...
FossilOrigin-Name: 94c564da4c2cf5dffe58fdf7a180e9ba4cc3de69
2014-11-07 13:24:29 +00:00
peter.d.reid
60ec914c74
Fix typos in comments. No code changes.
...
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
55548273a3
Get VACUUM and the xfer optimization working with WITHOUT ROWID.
...
FossilOrigin-Name: 579815fff1737552d2077255862b8f4fd220927c
2013-10-23 16:03:07 +00:00
drh
8b8d28dd5a
Update and modernize an obsolete comment associated with VACUUM. No
...
changes to code.
FossilOrigin-Name: 94c914e3fa632f88a0d0c14537f81aa46759e2be
2013-09-30 11:01:28 +00:00
drh
4f7d3a5f06
Refactor names of fields in the sqlite3 object: "activeVdbeCnt" becomes
...
"nVdbeActive". Related fields becomes "nVdbeRead", "nVdbeWrite", and
"nVdbeExec".
FossilOrigin-Name: 14f796963474350e7aee8d3757acd3315fe78e4f
2013-06-27 23:54:02 +00:00
drh
b8a67ec827
Preserve the application-ID across VACUUM. Updates to the magic number
...
file.
FossilOrigin-Name: 4a190bea18e156b6fa4dc9f21c3ad32409049603
2013-05-01 20:36:23 +00:00
dan
07973a6581
Hold the mutex on the shared-cache for the duration of a VACUUM operation.
...
FossilOrigin-Name: 629a42d47a0d8f73de900f469845ce800bdb8959
2012-10-15 18:02:57 +00:00
drh
81028a455d
The former sqlite3ResetInternalSchema() routine was really two different
...
routines, selected by parameter, each with a confused mission. So split
this routine up into three separate smaller routines, calling each
separately as needed. Hopefully this will make further refactoring and
schema reset collateral damage containment easier.
FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
dan
f602963dbc
Fix spurious errors that may occur if an empty database is opened and then initialized as a WAL database by a second connection.
...
FossilOrigin-Name: 16330a2f7262173a32ae48a72c0ee2522b6dc554
2012-02-28 17:57:34 +00:00
dan
c5f20a0061
Add the SQLITE_FCNTL_OVERWRITE file-control. Used by SQLite to indicate to the OS layer that the current transaction will overwrite the entire file.
...
FossilOrigin-Name: 1da87fcdacfa7d277c3ee98e410a9ea8b529c368
2011-10-07 16:57:59 +00:00
dan
1696124db7
Disable the xfer optimization if "PRAGMA count_changes=1" is configured. Ticket [c48d99d690].
...
FossilOrigin-Name: 9ddfe1e41300413bc9af7e5ce0ec9d1daf9136b1
2011-09-30 12:01:01 +00:00
drh
03faf63b57
Add a comment to the VACUUM implementation explaining when all schemas are
...
reset and not just the "main" schema.
FossilOrigin-Name: 2aff1b0ca87a99b8ec80e696b9e8a48bb43db2c2
2011-04-04 23:08:14 +00:00
drh
c7792fa052
Begin a series of changes designed to reduce the scope and frequency of
...
invalidating schemas. Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations. This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.
FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
dan
099d14707a
Add experimental branch disallowing VACUUM when there are one or more active SQL statements.
...
FossilOrigin-Name: c1ebcacd9b31239aee065c64c4b4596d56dc397f
2010-09-24 09:32:45 +00:00
drh
0b9b4301b8
Refactor and simplify the logic used to change journalmode.
...
FossilOrigin-Name: 95cc3f6fdec5494560c3cd4439d06870d1c62506
2010-06-11 17:01:24 +00:00
drh
acd0781892
If an ATTACH command files due to OP_JournalMode but still attaches the
...
database, make sure VACUUM still detaches it when done.
FossilOrigin-Name: 6ecdc7ba2b5e79e8b5862fb49cf6c2b99a40659a
2010-05-10 14:10:57 +00:00
drh
16adb77623
Make sure the page size of the main database is fixed following a
...
failed VACUUM attempt. Otherwise, two consecutive failed VACUUM attempts
with attempted page_size changes on encrypted or WAL databases could
result in database corruption.
FossilOrigin-Name: 208e7d5d3a8915433dbf50c6cc6698ec6c8df944
2010-05-05 04:11:44 +00:00
drh
811bdbd206
Do not attempt to modify the page_size when running VACUUM on a WAL database.
...
FossilOrigin-Name: 58a1a59be89b33c6d5fa8b43571037d7d96625a1
2010-05-05 03:39:53 +00:00
drh
545f587fc8
When commands such as ALTER TABLE and VACUUM use SQL internally, make sure
...
they use only the built-in functions and not application-defined overrides
for those functions.
FossilOrigin-Name: 0291ed974d5bf1e344e2c38422530cc961b897da
2010-04-24 14:02:59 +00:00
drh
2ec050c5b1
When TEMP files are in memory, also put the massive TEMP file used by
...
the VACUUM command in memory.
FossilOrigin-Name: 9daf4e7d07769f25b3a579d80e7fada4e52344b1
2010-03-02 23:34:54 +00:00
drh
cda455b7ff
Add a sqlite3_log() call on anonymous constraint failures.
...
Fix the output of test cases having to do with improved reprepare reporting.
Fix the VACUUM command to report more helpful error messages when things go
wrong.
FossilOrigin-Name: 69a493182fd77bec91598516ee42c11a6db1d039
2010-02-24 19:23:56 +00:00
drh
6a9c64b363
Make sure internal queries are well ordered, even when the
...
reverse_unordered_selects pragma is in effect.
Ticket [eb942c64a157].
FossilOrigin-Name: 0209f17180065d9c213b6c437be1c3c40660665f
2010-01-12 23:54:14 +00:00
drh
702b919a67
Disable trace when recursively running commands while vacuuming.
...
FossilOrigin-Name: 69a1348a3c88ffbf401cf72bbec8b4a76557bd11
2009-12-17 03:49:56 +00:00
drh
c81c11f62c
Remove the obsolete "$Id:$" RCS identifier strings from the source code.
...
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
drh
397308df6f
Fix the VACUUM command so that when the MAIN and TEMP databases have
...
identically named tables, content from the TEMP database does not
accidently overwrite MAIN database content.
Ticket [d82e3f3721296e905d7e8c9dee718f71a826b0eb].
Note that this bug could potentially lead to database corruption.
FossilOrigin-Name: 0bbd8d72ec66cbe11c2548a04ad478202b2b69b6
2009-10-20 15:01:58 +00:00
dan
fa401def25
Experimental fix for [f777251dc7]. This may be changed yet.
...
FossilOrigin-Name: 174477bca05d019e663fd2b7cd031189ab2e010a
2009-10-16 14:55:03 +00:00
dan
75cbd984f7
Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030e9757d052af0f394e56bea96b8b59b|1ff6d29030].
...
FossilOrigin-Name: fb6ceed388f6d75bdc2ac2f43e5c98da74e2a448
2009-09-21 16:06:03 +00:00
danielk1977
602b466e99
Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836)
...
FossilOrigin-Name: e3c055f167f895ae45858de9d9d8a264df2f36b6
2009-07-02 07:47:33 +00:00
danielk1977
0d19f7ac57
Define a set of constants to use as the "index" argument to sqlite3BtreeGetMeta and UpdateMeta. This makes some parts of the code easier to follow. (CVS 6709)
...
FossilOrigin-Name: 6dbf4eca00f845baa7200aba421d0bc158ba96aa
2009-06-03 11:25:07 +00:00
danielk1977
43996e858b
In vacuum.c use "PagerIsMemdb(X)" instead of "PagerFile(X)->pMethods==0". (CVS 6692)
...
FossilOrigin-Name: 874295ce71380da3f4c9296df0e0ce5ece136220
2009-05-30 10:46:10 +00:00
drh
5dc348a2e2
Changes to vacuum.c to facilitate full coverage testing. (CVS 6606)
...
FossilOrigin-Name: 866284654c1f163af4164fe8c698d30af32e4eaa
2009-05-05 17:37:22 +00:00
drh
ce4869f893
Make sure the VACUUM statement locks down the page_size and auto_vacuum
...
modes after it runs. Otherwise, pragmas might change these settings on
a populated database, resulting in problems. (CVS 6442)
FossilOrigin-Name: 85e6a4740d6db731c8c35a331031c346e9189c27
2009-04-02 20:16:58 +00:00
danielk1977
0410302e58
Commit first version of the 'backup' feature. (CVS 6241)
...
FossilOrigin-Name: 663479b417fc06ba1790a544f28694f8797cee57
2009-02-03 16:51:24 +00:00
drh
663d56d46f
Fix the VACUUM command so that it does not commit a transaction when it is
...
mistakenly run within a transaction - it should leave the transaction open. (CVS 6200)
FossilOrigin-Name: 75cc709be46ae2096d2ba3e7ac58de8140f8130c
2009-01-22 23:04:45 +00:00
danielk1977
00e136135e
Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914)
...
FossilOrigin-Name: 8009220c36635dd9b6efea7dc13281ca9625c40a
2008-11-17 19:18:54 +00:00