Bug fixes. Trying to make it go faster. (CVS 254)

FossilOrigin-Name: 8f28a83abac59a2161d486c96386b8df726468d0
This commit is contained in:
drh 2001-09-18 02:02:23 +00:00
parent c73d1f5a55
commit 1eaa2694bf
6 changed files with 31 additions and 20 deletions

View File

@ -1,5 +1,5 @@
C Enchanced\stransaction\stests\s(CVS\s253)
D 2001-09-17T20:48:30
C Bug\sfixes.\s\sTrying\sto\smake\sit\sgo\sfaster.\s(CVS\s254)
D 2001-09-18T02:02:23
F Makefile.in a7053596881af6f2590a816ad4eb8fbbf20724a7
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
F VERSION 3861a21803fcd9eb92a403027b0da2bb7add4de1
@ -18,7 +18,7 @@ F src/main.c 71ca839b90869c8c13db52fd08b0d0e80dae3288
F src/md5.c 52f677bfc590e09f71d07d7e327bd59da738d07c
F src/os.c 2e0daeca8a8c75f122d41f894698f5e1b258b69c
F src/os.h 3b21772e76df0f3998c5a968a2a0d23b9d4551fe
F src/pager.c 3871a5d34808b703e2d8ae2799fda208aa204051
F src/pager.c c7db91e4e44bbf3e13ecea658e47b670d1f26e29
F src/pager.h a0d4c5ae271914aa07b62aee0707997d6932b6ca
F src/parse.y 2bcf47bb8e6afd8bc10aebd555fa07b73905bee4
F src/printf.c b1e22a47be8cdf707815647239991e08e8cb69f9
@ -36,9 +36,9 @@ F src/test3.c f46bad555db7a6a25be332a96ac99e4d68a1b0c5
F src/tokenize.c 2adf0568edf41b3d3c2fcb541ac49bd6e662da0c
F src/update.c a1952ad5d53379fa2b2d12efae5993ddb85a1ddb
F src/util.c a09c3c12aa0259c12e7385313f527895ba3cdbf9
F src/vdbe.c 33dcb7068dc6d80f7eb699922c6749abb32bf75e
F src/vdbe.c 21f5d1c5418cbf740eefec10b875632e848eb7c1
F src/vdbe.h 900b59b46afdfb9c048a2a31a4478f380ab8504e
F src/where.c db42a5abdef686b4c3e1b51d0f85a6f8926521e5
F src/where.c cce952b6a2459ac2296e3432876a4252d2fe3b87
F test/all.test a2320eb40b462f25bd3e33115b1cabf3791450dd
F test/btree.test bb1d1caf834aa22a208ce6cc7d8d8bd0e106cd59
F test/btree2.test ddc13a8de33461391da8403ded3e6b091f08dab4
@ -57,7 +57,7 @@ F test/pager.test 59bbc4e3d489529ed33db6e15595789e51056077
F test/printf.test 93ecd43cc48e863a325560f36c3b2741f5fe0308
F test/quick.test b6ec50f808efc06595fd324bf4f3fabadb9c7e9c
F test/quote.test 286db944717afa9a9bf829dd85e59185c65d5435
F test/rowid.test b6ce03dd39523b0f213fb9b05b5d544f73f002ce
F test/rowid.test 427bfbbe9684fe7a2f851aa05badaae6d4972ce8
F test/select1.test e0c3ff05f44233cde7918cb22ba4be05ea7a08ec
F test/select2.test f91c903e2bab0e9d45274855a981eebf846d5e32
F test/select3.test 5e1fe8e5a4e63fb2827ab3b89527e0fd4ae35259
@ -95,7 +95,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2
F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
P 602ea4f9f641070592c788ce22859b849739b42e
R 9d47f76cff786cc38ee15dd98f00be51
P b30f2b5e150a219c374f88d13386dbda190ad9ed
R 07bb1a4a448dedf9e2b45c7aa5ee5ac1
U drh
Z 49979fa205c7e6b07a58fef67abee514
Z ba1b972f8330f9b56b7e933eb997f9fb

View File

@ -1 +1 @@
b30f2b5e150a219c374f88d13386dbda190ad9ed
8f28a83abac59a2161d486c96386b8df726468d0

View File

@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.20 2001/09/16 00:13:27 drh Exp $
** @(#) $Id: pager.c,v 1.21 2001/09/18 02:02:23 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"
@ -947,14 +947,12 @@ void *sqlitepager_lookup(Pager *pPager, Pgno pgno){
** removed.
*/
int sqlitepager_unref(void *pData){
Pager *pPager;
PgHdr *pPg;
/* Decrement the reference count for this page
*/
pPg = DATA_TO_PGHDR(pData);
assert( pPg->nRef>0 );
pPager = pPg->pPager;
pPg->nRef--;
REFINFO(pPg);
@ -962,6 +960,8 @@ int sqlitepager_unref(void *pData){
** destructor and add the page to the freelist.
*/
if( pPg->nRef==0 ){
Pager *pPager;
pPager = pPg->pPager;
pPg->pNextFree = 0;
pPg->pPrevFree = pPager->pLast;
pPager->pLast = pPg;

View File

@ -30,7 +30,7 @@
** But other routines are also provided to help in building up
** a program instruction by instruction.
**
** $Id: vdbe.c,v 1.70 2001/09/16 00:13:27 drh Exp $
** $Id: vdbe.c,v 1.71 2001/09/18 02:02:23 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -2332,7 +2332,11 @@ case OP_NewRecno: {
v = ux.i;
rx = sqliteBtreeMoveto(p->aCsr[i].pCursor, &v, sizeof(v), &res);
cnt++;
}while( cnt<10 && rx==SQLITE_OK && res==0 );
}while( cnt<200 && rx==SQLITE_OK && res==0 );
if( rx==SQLITE_OK && res==0 ){
rc = SQLITE_FULL;
goto abort_due_to_error;
}
}
VERIFY( NeedStack(p, p->tos+1); )
p->tos++;

View File

@ -13,7 +13,7 @@
** the WHERE clause of SQL statements. Also found here are subroutines
** to generate VDBE code to evaluate expressions.
**
** $Id: where.c,v 1.20 2001/09/16 00:13:27 drh Exp $
** $Id: where.c,v 1.21 2001/09/18 02:02:23 drh Exp $
*/
#include "sqliteInt.h"
@ -344,7 +344,7 @@ WhereInfo *sqliteWhereBegin(
if( i==pTabList->nId-1 && pushKey ){
haveKey = 1;
}else{
sqliteVdbeAddOp(v, OP_MoveTo, base+idx, 0, 0, 0);
sqliteVdbeAddOp(v, OP_NotFound, base+idx, brk, 0, 0);
haveKey = 0;
}
}else if( pIdx==0 ){

View File

@ -12,7 +12,7 @@
# focus of this file is testing the magic ROWID column that is
# found on all tables.
#
# $Id: rowid.test,v 1.4 2001/09/16 00:13:28 drh Exp $
# $Id: rowid.test,v 1.5 2001/09/18 02:02:23 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -61,6 +61,13 @@ do_test rowid-1.7 {
set sql "SELECT x FROM t1 WHERE _rowid_==$x2rowid(1)"
execsql $sql
} {1}
do_test rowid-1.7.1 {
while 1 {
set norow [expr {int(rand()*1000000)}]
if {$norow!=$x2rowid(1) && $norow!=$x2rowid(3)} break
}
execsql "SELECT x FROM t1 WHERE rowid=$norow"
} {}
do_test rowid-1.8 {
global x2rowid
set v [execsql {SELECT x, oid FROM t1 order by x}]
@ -235,13 +242,13 @@ do_test rowid-4.5 {
SELECT t1.x, fcnt() FROM t2, t1
WHERE t2.y==256 AND t1.rowid==t2.rowid
}
} {4 2}
} {4 1}
do_test rowid-4.5.1 {
execsql {
SELECT t1.x, fcnt() FROM t2, t1
WHERE t1.OID==t2.rowid AND t2.y==81
}
} {3 2}
} {3 1}
do_test rowid-4.6 {
execsql {
SELECT t1.x FROM t1, t2