Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Change the fts3 test interface used to configure the advisory node size parameter. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
87fc0ce151c89beb5a43b65c0b1706f3 |
User & Date: | dan 2009-12-11 16:03:45.000 |
Original Comment: | Change the fts3 test interface used to configure the advisory node size paraemeter. |
Context
2009-12-11
| ||
23:11 | Additional changes to C-language interface documentation. (check-in: 1342916fd3 user: drh tags: trunk) | |
16:03 | Change the fts3 test interface used to configure the advisory node size parameter. (check-in: 87fc0ce151 user: dan tags: trunk) | |
12:29 | Rationalize some code in fts3 used by optimize operations, queries of the pending-terms hash table and segment merges. Add the "INSERT INTO tbl(tbl) VALUES('optimize')" syntax. (check-in: 29476da353 user: dan tags: trunk) | |
Changes
Changes to ext/fts3/fts3.c.
︙ | ︙ | |||
573 574 575 576 577 578 579 | char *zCsr; int nDb; int nName; const char *zTokenizer = 0; /* Name of tokenizer to use */ sqlite3_tokenizer *pTokenizer = 0; /* Tokenizer for this table */ | < < < < < < < < | 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | char *zCsr; int nDb; int nName; const char *zTokenizer = 0; /* Name of tokenizer to use */ sqlite3_tokenizer *pTokenizer = 0; /* Tokenizer for this table */ nDb = (int)strlen(argv[1]) + 1; nName = (int)strlen(argv[2]) + 1; for(i=3; i<argc; i++){ char const *z = argv[i]; rc = sqlite3Fts3InitTokenizer(pHash, z, &pTokenizer, &zTokenizer, pzErr); if( rc!=SQLITE_OK ){ return rc; |
︙ | ︙ | |||
668 669 670 671 672 673 674 | rc = fts3CreateTables(p); if( rc!=SQLITE_OK ) goto fts3_init_out; } rc = fts3DeclareVtab(p); if( rc!=SQLITE_OK ) goto fts3_init_out; | < < < < < | 660 661 662 663 664 665 666 667 668 669 670 671 672 673 | rc = fts3CreateTables(p); if( rc!=SQLITE_OK ) goto fts3_init_out; } rc = fts3DeclareVtab(p); if( rc!=SQLITE_OK ) goto fts3_init_out; *ppVTab = &p->base; fts3_init_out: assert( p || (pTokenizer && rc!=SQLITE_OK) ); if( rc!=SQLITE_OK ){ if( p ){ fts3DisconnectMethod((sqlite3_vtab *)p); |
︙ | ︙ | |||
2277 2278 2279 2280 2281 2282 2283 | || (pIcu && sqlite3Fts3HashInsert(pHash, "icu", 4, (void *)pIcu)) #endif ){ rc = SQLITE_NOMEM; } } | < < < < < < | 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 | || (pIcu && sqlite3Fts3HashInsert(pHash, "icu", 4, (void *)pIcu)) #endif ){ rc = SQLITE_NOMEM; } } /* Create the virtual table wrapper around the hash-table and overload ** the two scalar functions. If this is successful, register the ** module with sqlite. */ if( SQLITE_OK==rc && SQLITE_OK==(rc = sqlite3Fts3InitHashTable(db, pHash, "fts3_tokenizer")) && SQLITE_OK==(rc = sqlite3_overload_function(db, "snippet", -1)) |
︙ | ︙ |
Changes to ext/fts3/fts3_write.c.
︙ | ︙ | |||
2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 | return SQLITE_NOMEM; }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){ rc = fts3SegmentMerge(p, -1); if( rc==SQLITE_DONE || rc==SQLITE_OK ){ rc = SQLITE_OK; sqlite3Fts3PendingTermsClear(p); } }else{ rc = SQLITE_ERROR; } return rc; } | > > > > > | 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 | return SQLITE_NOMEM; }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){ rc = fts3SegmentMerge(p, -1); if( rc==SQLITE_DONE || rc==SQLITE_OK ){ rc = SQLITE_OK; sqlite3Fts3PendingTermsClear(p); } #ifdef SQLITE_TEST }else if( nVal>9 && 0==sqlite3_strnicmp(zVal, "nodesize=", 9) ){ p->nNodeSize = atoi(&zVal[9]); rc = SQLITE_OK; #endif }else{ rc = SQLITE_ERROR; } return rc; } |
︙ | ︙ |
Changes to main.mk.
︙ | ︙ | |||
258 259 260 261 262 263 264 | $(TOP)/src/os_os2.c $(TOP)/src/os_unix.c $(TOP)/src/os_win.c \ $(TOP)/src/pager.c $(TOP)/src/pragma.c $(TOP)/src/prepare.c \ $(TOP)/src/printf.c $(TOP)/src/random.c $(TOP)/src/pcache.c \ $(TOP)/src/pcache1.c $(TOP)/src/select.c $(TOP)/src/tokenize.c \ $(TOP)/src/utf.c $(TOP)/src/util.c $(TOP)/src/vdbeapi.c $(TOP)/src/vdbeaux.c \ $(TOP)/src/vdbe.c $(TOP)/src/vdbemem.c $(TOP)/src/where.c parse.c \ $(TOP)/ext/fts3/fts3.c $(TOP)/ext/fts3/fts3_expr.c \ | | | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | $(TOP)/src/os_os2.c $(TOP)/src/os_unix.c $(TOP)/src/os_win.c \ $(TOP)/src/pager.c $(TOP)/src/pragma.c $(TOP)/src/prepare.c \ $(TOP)/src/printf.c $(TOP)/src/random.c $(TOP)/src/pcache.c \ $(TOP)/src/pcache1.c $(TOP)/src/select.c $(TOP)/src/tokenize.c \ $(TOP)/src/utf.c $(TOP)/src/util.c $(TOP)/src/vdbeapi.c $(TOP)/src/vdbeaux.c \ $(TOP)/src/vdbe.c $(TOP)/src/vdbemem.c $(TOP)/src/where.c parse.c \ $(TOP)/ext/fts3/fts3.c $(TOP)/ext/fts3/fts3_expr.c \ $(TOP)/ext/fts3/fts3_tokenizer.c $(TOP)/ext/fts3/fts3_write.c \ $(TOP)/ext/async/sqlite3async.c # Header files used by all library source files. # HDR = \ $(TOP)/src/btree.h \ $(TOP)/src/btreeInt.h \ |
︙ | ︙ |
Changes to test/fts3rnd.test.
︙ | ︙ | |||
210 211 212 213 214 215 216 | foreach nodesize {50 500 1000 2000} { catch { array unset ::t1 } # Create the FTS3 table. Populate it (and the Tcl array) with 100 rows. # db transaction { catchsql { DROP TABLE t1 } | | > | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | foreach nodesize {50 500 1000 2000} { catch { array unset ::t1 } # Create the FTS3 table. Populate it (and the Tcl array) with 100 rows. # db transaction { catchsql { DROP TABLE t1 } execsql "CREATE VIRTUAL TABLE t1 USING fts3(a, b, c)" execsql "INSERT INTO t1(t1) VALUES('nodesize=$nodesize')" for {set i 0} {$i < 100} {incr i} { insert_row $i } } for {set iTest 0} {$iTest <= 100} {incr iTest} { catchsql COMMIT set DO_MALLOC_TEST 0 |
︙ | ︙ |