-C Further\sOOM\stesting\sfor\sfts3\scode.\sAdd\sTcl\scode\simplementing\san\sintegrity-check\sfor\sfts3.
-D 2009-11-14T11:41:01
+C Fixes\sto\sfts3\sintegrity\scheck\scode.
+D 2009-11-14T23:50:11
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 53f3dfa49f28ab5b80cb083fb7c9051e596bcfa1
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/test_config.c 220a67047af393756f55760fdf442d935d0d88f3
F src/test_devsym.c de3c9af2bb9a8b1e44525c449e4ec3f88e3d4110
F src/test_func.c 1c94388a23d4a9e7cd62ec79d612d1bae2451fa2
-F src/test_hexio.c 160dba2ad21d164cade8fd6a12db0926ca574ac8
+F src/test_hexio.c 0853ca2986c0cad788eb322b747cc1cbc1f1d31b
F src/test_init.c 5d624ffd0409d424cf9adbfe1f056b200270077c
F src/test_intarray.c 25b3df15cca9ddb83927e002f4885d98a63bba0d
F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F test/fts2r.test b154c30b63061d8725e320fba1a39e2201cadd5e
F test/fts2token.test d8070b241a15ff13592a9ae4a8b7c171af6f445a
F test/fts3.test f4f380d3717493605270dfa3b0fa893ea0afb18d
-F test/fts3_common.tcl 2a38db65c919b5aa7b88d9c204e19e3d66fd810a
+F test/fts3_common.tcl c6493126a3847355c007bb36e0d15e496899aeb5
F test/fts3aa.test 5327d4c1d9b6c61021696746cc9a6cdc5bf159c0
F test/fts3ab.test 09aeaa162aee6513d9ff336b6932211008b9d1f9
F test/fts3ac.test 356280144a2c92aa7b11474afadfe62a437fcd69
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 30a92f1132801c7582007ee625c577ea2ac31cdf
-R b57a3a365be0f7386d8b2b667cc40aff
+P c27d46b33e8596b45c562c2742b05030e8899092
+R 4c52d9528d06bab9b6911bfc5621469d
U dan
-Z c9155f22386e8e971e228afde4beba2a
+Z 07e55edf8ef0b4c5772a79580f9928fa
-c27d46b33e8596b45c562c2742b05030e8899092
\ No newline at end of file
+d3cae986ee1a176b1b015c3cebcd58ff0c3bdf92
\ No newline at end of file
return TCL_OK;
}
+static int getFts3Varint(const char *p, sqlite_int64 *v){
+ const unsigned char *q = (const unsigned char *) p;
+ sqlite_uint64 x = 0, y = 1;
+ while( (*q & 0x80) == 0x80 ){
+ x += y * (*q++ & 0x7f);
+ y <<= 7;
+ }
+ x += y * (*q++);
+ *v = (sqlite_int64) x;
+ return (int) (q - (unsigned char *)p);
+}
+
+
/*
** USAGE: read_varint BLOB VARNAME
**
}
zBlob = Tcl_GetByteArrayFromObj(objv[1], &nBlob);
- nVal = sqlite3GetVarint(zBlob, (sqlite3_uint64 *)(&iVal));
+ nVal = getFts3Varint(zBlob, (sqlite3_uint64 *)(&iVal));
Tcl_ObjSetVar2(interp, objv[2], 0, Tcl_NewWideIntObj(iVal), 0);
Tcl_SetObjResult(interp, Tcl_NewIntObj(nVal));
return TCL_OK;
}
}
+ foreach key [array names C] {
+ #puts "$key -> $C($key)"
+ }
+
db eval "SELECT * FROM ${tbl}_content" E {
set iCol 0
set sql {SELECT fts3_tokenizer_test('simple', $c)}
foreach {pos term dummy} [db one $sql] {
- if {$C($iDoc,$iCol,$pos) != "$term"} {
- set es "Error at docid=$iDoc col=$iCol pos=$pos. "
- append es "Index has \"$C($iDoc,$iCol,$pos)\", document has \"$term\""
+ if {![info exists C($iDoc,$iCol,$pos)]} {
+ set es "Error at docid=$iDoc col=$iCol pos=$pos. Index is missing"
lappend errors $es
+ } else {
+ if {$C($iDoc,$iCol,$pos) != "$term"} {
+ set es "Error at docid=$iDoc col=$iCol pos=$pos. Index "
+ append es "has \"$C($iDoc,$iCol,$pos)\", document has \"$term\""
+ lappend errors $es
+ }
+ unset C($iDoc,$iCol,$pos)
}
- unset C($iDoc,$iCol,$pos)
}
incr iCol
}
} else {
db eval " SELECT block
FROM ${tbl}_segments
- WHERE blockid>=$start_block AND blockid<$leaves_end_block
+ WHERE blockid>=$start_block AND blockid<=$leaves_end_block
ORDER BY blockid
" {
foreach {t d} [fts3_readleaf $block] { lappend a($t) $d }