Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Pull the incremental_vacuum bug fix ([255f1eefa373153942c67b18b]) and the R-tree segfault bug fix ([7f2f71cc9e3c39093f09231f44]) into the 3.6.23 branch. Increase the version number to 3.6.23.3. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | branch-3.6.23 |
Files: | files | file ages | folders |
SHA1: |
bcbdecd854d8430831fbcdf17f55ba6f |
User & Date: | drh 2010-08-24 12:05:18.000 |
Context
2010-10-01
| ||
20:45 | Backport the RTree implementation from the trunk into the 3.6.23 branch. The code for the application-defined query boxes is still present but is disabled. The reason for this backport is to take advantage of recent enhancements to robustness to database corruption. (check-in: 854b23c117 user: drh tags: branch-3.6.23) | |
2010-08-24
| ||
12:05 | Pull the incremental_vacuum bug fix ([255f1eefa373153942c67b18b]) and the R-tree segfault bug fix ([7f2f71cc9e3c39093f09231f44]) into the 3.6.23 branch. Increase the version number to 3.6.23.3. (check-in: bcbdecd854 user: drh tags: branch-3.6.23) | |
2010-05-19
| ||
22:09 | Cherry-pick the SQLITE_FCNTL_SIZE_HINT patch (check-in [2b7e3b4a30d6a7c4a8] and bump the version number to 3.6.23.2. (check-in: 776679af58 user: drh tags: branch-3.6.23) | |
Changes
Changes to VERSION.
|
| | | 1 | 3.6.23.3 |
Changes to ext/rtree/rtree.c.
︙ | ︙ | |||
434 435 436 437 438 439 440 | *ppNode = pNode; rc = sqlite3_reset(pRtree->pReadNode); if( rc==SQLITE_OK && iNode==1 ){ pRtree->iDepth = readInt16(pNode->zData); } | | | > > > | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 | *ppNode = pNode; rc = sqlite3_reset(pRtree->pReadNode); if( rc==SQLITE_OK && iNode==1 ){ pRtree->iDepth = readInt16(pNode->zData); } if( pNode!=0 ){ nodeHashInsert(pRtree, pNode); }else if( rc==SQLITE_OK ){ rc = SQLITE_CORRUPT; } return rc; } /* ** Overwrite cell iCell of node pNode with the contents of pCell. */ |
︙ | ︙ |
Changes to src/btree.c.
︙ | ︙ | |||
4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 | if( rc ){ goto end_allocate_page; } if( k==0 ){ if( !pPrevTrunk ){ memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); }else{ memcpy(&pPrevTrunk->aData[0], &pTrunk->aData[0], 4); } }else{ /* The trunk page is required by the caller but it contains ** pointers to free-list leaves. The first leaf becomes a trunk ** page in this case. */ | > > > > | 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 | if( rc ){ goto end_allocate_page; } if( k==0 ){ if( !pPrevTrunk ){ memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); }else{ rc = sqlite3PagerWrite(pPrevTrunk->pDbPage); if( rc!=SQLITE_OK ){ goto end_allocate_page; } memcpy(&pPrevTrunk->aData[0], &pTrunk->aData[0], 4); } }else{ /* The trunk page is required by the caller but it contains ** pointers to free-list leaves. The first leaf becomes a trunk ** page in this case. */ |
︙ | ︙ |
Added test/tkt-5e10420e8d.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | # 2010 August 23 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # set testdir [file dirname $argv0] source $testdir/tester.tcl do_test tkt-5e10420e8d.1 { db eval { PRAGMA page_size = 1024; PRAGMA auto_vacuum = incremental; CREATE TABLE t1(x); CREATE TABLE t2(x); CREATE TABLE t3(x); } } {} do_test tkt-5e10420e8d.2 { db eval { INSERT INTO t3 VALUES(randomblob(500 + 1024*248)); INSERT INTO t1 VALUES(randomblob(1500)); INSERT INTO t2 VALUES(randomblob(500 + 1024*248)); DELETE FROM t3; DELETE FROM t2; DELETE FROM t1; } } {} do_test tkt-5e10420e8d.3 { db eval { PRAGMA incremental_vacuum(248) } } {} do_test tkt-5e10420e8d.4 { db eval { PRAGMA incremental_vacuum(1) } } {} db close sqlite3 db test.db do_test tkt-5e10420e8d.5 { db eval {PRAGMA integrity_check;} } {ok} finish_test |