1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

1674 Commits

Author SHA1 Message Date
drh
afc8b7f0c1 Enable the use of shared cache for an in-memory database, so that separate
database connections can share the same in-memory database.

FossilOrigin-Name: 4590e433f2a595bb80fb061024b0a3d2ca25b7b2
2012-05-26 18:06:38 +00:00
dan
1235bb1815 Modify the integrity-check code to reduce the size of the large allocation from 4 bytes to 1 bit for each page in the database file.
FossilOrigin-Name: fa3a498dfe9ed59c30da5eaa0d7cad167fd4e393
2012-04-03 17:43:28 +00:00
drh
d60f4f4c95 When an incremental blob cursor is invalidated (occurs when an SQL statement modifies or deletes the row the blob cursor points to) release all page references held by the cursor. Otherwise, the presence of these references may cause other code in btree.c to incorrectly infer that the database is corrupt.
FossilOrigin-Name: 341b703ce16361a64ed8bba64ff46792132c0b56
2012-03-23 14:23:52 +00:00
drh
0f198a7409 Change the ROLLBACK command so that pending statements to not block it. The
pending statements instead return SQLITE_ABORT upon next access.  Note: This
causes separate shared-cache connections in read_uncommitted mode to abort as
well.

FossilOrigin-Name: 9b66c79e054c8a109d1ee8d35fed1c42814c330d
2012-02-13 16:43:16 +00:00
drh
2cbd78b70e Reduce the size of the MemPage object by about 32 bytes. Other structure
size optimizations.

FossilOrigin-Name: 21695c3476804477cb378b5a643196380e7e2281
2012-02-02 19:37:18 +00:00
drh
33f111dc72 Remove the undocumented PRAGMA omit_readlock hack.
FossilOrigin-Name: 96900c47e4fc6ed55cefc10d55d3d8d16bcb1d31
2012-01-17 15:29:14 +00:00
dan
6c2688c8d4 Fix typos in a testcase() macro introduced by the previous commit.
FossilOrigin-Name: 0467742fd6ef33dfe4df66e5046f075fe8e0260d
2012-01-12 15:05:03 +00:00
dan
bb246c4da0 Remove some assert() statements that can fail with corrupt databases.
FossilOrigin-Name: 7654ae71bd26ae5d713935624d2b6cb8d2e4633f
2012-01-12 14:25:55 +00:00
mistachkin
0547e2ff7b Fix harmless compiler warning seen with MSVC.
FossilOrigin-Name: 9612bcd648c7654050ddb2f955a28cbc527a8c2e
2012-01-08 00:54:02 +00:00
drh
c91663499e Combine various boolean variables in the BtShared structure into a single
boolean vector.  Also make performance improvement simplifications to
sqlite3BtreeMovetoUnpacked().

FossilOrigin-Name: 119493318e0ad4c2858fe1484b0d71669bd81531
2012-01-05 23:32:06 +00:00
drh
2f32fbae31 Remove an incorrect assert() in btree.c.
FossilOrigin-Name: c1691d998a03fee3bef137ccf2e8ca45acac2df4
2012-01-02 16:38:57 +00:00
dan
27d47fbe6e Avoid 32-bit overflow when calculating the byte offset of an overflow page in SQLITE_DIRECT_OVERFLOW_READ code. Fix for [ac0ff496b7].
FossilOrigin-Name: c5256b59ad70104c1e181b9f49d1d712cf4cc9f6
2011-12-21 17:00:16 +00:00
drh
070ad6b6fe Restore the test for sqlite3OsFullPathname() failure that was mistakenly
removed when [ceee03c79a] was backed out by [69ec53fc1c].

FossilOrigin-Name: 4d3cf9e1d8ac356db5a708913f614e42a6a56b94
2011-11-17 11:43:19 +00:00
drh
3def2357e6 Make sure a corrupt index does not cause a buffer overread in
sqlite3VdbeRecordCompare().

FossilOrigin-Name: 471cf0d8e7857110e525e029c2d535cb518dba6a
2011-11-11 00:27:15 +00:00
drh
30ddce6ff4 Added the tool/warnings-clang.sh script. Changes so that there are no
warnings with either gcc or clang even including FTS4 and RTREE and
both with and without SQLITE_THREADSAFE=0.

FossilOrigin-Name: 39408702a989f907261c298bf0947f3e68bd10fe
2011-10-15 00:16:30 +00:00
drh
b07028f71c Add assert() statements and eliminate needless variable assignments in order
to get the clang scan-build utility to report zero problems against the
SQLite core.  Clang's static analysis did find one real problem - but it was
in the command-line shell, not in the SQLite core.

FossilOrigin-Name: 60fee9574b0125705787e33c16f116cf188c8323
2011-10-14 21:49:18 +00:00
drh
8a575d9aa9 Clarify a comment and fix a code formatting issue in btree.c.
FossilOrigin-Name: 4f1a558d0013fbf3fe00bdf5883e61a1f3779831
2011-10-12 17:00:28 +00:00
dan
f4ba109356 Add the SQLITE_DIRECT_OVERFLOW_READ compile time option.
FossilOrigin-Name: 2ab14a846727857175eac7961b7338c4d3b417ca
2011-10-08 14:57:07 +00:00
mistachkin
0fe5f95c7f Remove 'const' from a variable that might actually be written when an OOM error occurs. Also, fix a couple MSVC/Win32 compiler warnings.
FossilOrigin-Name: 3035dc1c7398791d550f4c02774ef7f961b4bb02
2011-09-14 18:19:08 +00:00
dan
42acb3e597 Fix a minor performance regression in btreeMoveto().
FossilOrigin-Name: d0712dfb24867a807c9cddcc12bd0aebe1d3e085
2011-09-05 20:16:38 +00:00
dan
03e9cfc223 Refactor the sqlite3VdbeRecordUnpack() interface to better accommodate the vdbesort.c module.
FossilOrigin-Name: f115b2303509c678dbe83b2fa3d9c40d82882813
2011-09-05 14:20:27 +00:00
drh
34163c6831 Remove some dead code. Fix a faulty assert(). Improve some variable names.
FossilOrigin-Name: a9a64592cf88580cb254fb0aac65a2f2085976ec
2011-09-02 21:42:33 +00:00
dan
7733a4db4b Combine two malloc calls in vdbesort.c.
FossilOrigin-Name: cf48ad8353e28339d00f448bb729e10a7f2aad72
2011-09-02 18:03:16 +00:00
dan
5134d1357e Instead of a temporary b-tree, use a linked-list and merge-sort to sort records in main memory in vdbesort.c.
FossilOrigin-Name: 7769fb988d9be0f2d8129aaac19620ac88f9b4a6
2011-09-02 10:31:11 +00:00
drh
e42a9b431b Add checks to make sure cells in corrupt database files
do not overflow a page when doing autovacuum.
Problem detected by valgrind.

FossilOrigin-Name: d0b347b412376d22e9f0770ac083dafb5e480dd0
2011-08-31 13:27:19 +00:00
dan
a205a486d2 Experimental changes to improve the performance of OP_Next.
FossilOrigin-Name: 1a249845251199c00817893add300a1a654b4df9
2011-08-27 18:48:57 +00:00
drh
2a5d9908f9 Create a new pager type, PAGER_SORTER, for use in the external merge sort.
Such pagers are always held in memory but do report when they are under
memory pressure by calling pagerStress.

FossilOrigin-Name: c71d73201d950355862dd8d5de142c9673888755
2011-08-26 00:34:45 +00:00
dan
06199d84e8 When copying a rollback mode database over a WAL database using the backup API, leave the destination database in WAL mode (instead of switching it to rollback mode). Fix for [af95b8c609].
FossilOrigin-Name: 35e6ac18e3d030095da57fff87a288939e9be93f
2011-08-23 11:47:06 +00:00
dan
c6e734554f Change to using packed-memory-arrays instead of b-trees when performing an offline merge-sort for CREATE INDEX. This makes it easier to control the number of disc seeks required when merging.
FossilOrigin-Name: a4770d079c1b236eb54751e75a44cccc997c6b93
2011-08-04 12:14:04 +00:00
drh
2ce71b4e7a Add assert() statements to verify that u16 pointers associated with
the enhancement in [897f56a158] are always 2-byte aligned.

FossilOrigin-Name: 98ccfa930e8e5f10808a518e3e22e85e8a8a65c2
2011-06-06 13:38:11 +00:00
drh
afb9817f8c Performance improvement to the btree search routine.
FossilOrigin-Name: 65db822f200bafe9abe59b33b17b2c643c17c5e8
2011-06-04 01:43:53 +00:00
drh
61d2fe955c Performance improvements on memory copies inside of btree by moving 2 bytes
at a time instead of just 1 byte at a time.

FossilOrigin-Name: 897f56a158ebe62758c9998e4941ae046c75fb99
2011-06-03 23:28:33 +00:00
drh
68f2a57698 Factor an "if" out of a loop in balance_nonroot() for about a 1% performance
increase.

FossilOrigin-Name: 1bd72d0c616e20fdb395c72ecd96579090ae26cb
2011-06-03 17:50:49 +00:00
drh
c3f1d5f095 Minor performance improvements.
FossilOrigin-Name: f9950c6af1813f724dacd7455f472acec921b06a
2011-05-30 23:42:16 +00:00
drh
fc24373999 Avoid exceeding array bounds when reading a corrupt database file in
autovacuum mode.  Fixes a problem discovered by John Regehr and Peng Li
using a customized clang compiler.

FossilOrigin-Name: f7c525f5fc31e909721df2b1e66fc62dfb105718
2011-05-17 15:21:56 +00:00
dan
3a6d8aec2a Have the ATTACH command do URI interpretation in the same way as sqlite3_open() and sqlite3_open_v2() do.
FossilOrigin-Name: 68240e75e87a54cde93352b0ec364d34365a8170
2011-04-23 15:54:54 +00:00
drh
93b4fc78cf When searching a list of freelist trunk pages looking for a specific page
to allocate, avoid unnecessary journalling of the unchanged trunk pages towards
the start of the list.

FossilOrigin-Name: d03d63d77ed144ac2c02a0245c4b4b070b79c88e
2011-04-07 14:47:01 +00:00
dan
bb2b441867 Changes to support building with various SQLITE_OMIT_XXX options defined.
FossilOrigin-Name: 2039ed952a02bdcd4fc6d2e20572c4632084dcdb
2011-04-06 17:54:31 +00:00
drh
fcd71b6010 Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
within asserts or unused parameters in extensions.

FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
drh
4fa7d7c0df Fix typos in comments. No changes to code.
FossilOrigin-Name: 28c5f12e98655d5c6167b13e8a15085eca43dd5b
2011-04-03 02:41:00 +00:00
dan
60939d0ade Fix a problem whereby following an IO error in CommitPhaseTwo() of a multi-file transaction the b-tree layer could be left in TRANS_WRITE state, causing problems later on.
FossilOrigin-Name: dbe569a099c2855480e35c0cc4d9332821ad80da
2011-03-29 15:40:55 +00:00
drh
d50ffc416f Fix additional cases of possible signed integer overflow, especially with
regard to negation.

FossilOrigin-Name: 2d5800bd8cfc7d7f5578a71b1aeaa74b2ec4b372
2011-03-08 02:38:28 +00:00
drh
c126e63e4f Remove dead code identified by the clang static analyzer.
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00
dan
ecac670a8b Do not report corruption if the the db size header field is greater than the file size on disk unless the two change-counter header fields are identical. Fix for ticket [89b8c9ac54].
FossilOrigin-Name: 00c4596f0b270120848ab8d06dcdec7813a9a315
2011-02-09 18:19:20 +00:00
drh
87fa53ee8d Merge in the blocking-checkpoint enhancement, including the new
sqlite3_wal_checkpoint_v2() interface and the
PRAGMA wal_checkpoint(full) statement.

FossilOrigin-Name: bac7342c368a7c4f5f2878e08d9581dcbf57dd58
2011-02-02 16:34:08 +00:00
drh
41692e9d7c Shave a few cycles so that performance is better than 3.7.4 in speed tests.
FossilOrigin-Name: e14649301138b6840e24a4bbd2cf5205c0f72409
2011-01-25 04:34:51 +00:00
drh
efd95a7aca Do not raise an SQLITE_CORRUPT error in Recoverymode
if the database size in the header is larger than the physical file
size.  This facilitates recovery of a database in which the database size
field has been corrupted.

FossilOrigin-Name: 114640d920e16c85de90b19d53c485135875de5b
2011-01-12 17:56:26 +00:00
drh
b0a7c9cd2f Fix the build so that it once again works with SQLITE_OMIT_SHARED_CACHE
and SQLITE_OMIT_AUTOVACUUM.

FossilOrigin-Name: fabcb6b95e1d4059d1e6c6183f65846f6cbd5749
2010-12-06 21:09:59 +00:00
drh
27f9aba18c Merge the checkpoint_fullfsync pragma and the superlock demonstration into
the checkpoint-v2 experimental branch.

FossilOrigin-Name: ebf74015f09fe241c1c6902dc8954f2b59ab41ec
2010-11-19 18:51:31 +00:00
drh
c97d84638e Add the checkpoint_fullfsync pragma which enables F_FULLFSYNC on checkpoint
operations only, not during ordinary commit fsyncs.

FossilOrigin-Name: a069867301de3ca2e1753bd4d2e426d27365be4c
2010-11-19 18:23:35 +00:00