Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the edit_cost_table= command to the spellfix1 virtual table, permitting the edit distance cost table to be changed at runtime. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
89d6368250f9ba2f49e930bbe5524f3d |
User & Date: | drh 2013-02-19 11:51:27.137 |
Context
2013-02-19
| ||
18:34 | Truncate over-length source lines in sqliteInt.h to 80 characters or less. (check-in: d71abab085 user: drh tags: trunk) | |
11:51 | Add the edit_cost_table= command to the spellfix1 virtual table, permitting the edit distance cost table to be changed at runtime. (check-in: 89d6368250 user: drh tags: trunk) | |
2013-02-16
| ||
02:41 | Fix an unsafe VM register deallocation. (check-in: cfba2c8dad user: drh tags: trunk) | |
Changes
Changes to src/test_spellfix.c.
︙ | ︙ | |||
2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 | return SQLITE_CONSTRAINT_NOTNULL; } if( strcmp(zCmd,"reset")==0 ){ /* Reset the edit cost table (if there is one). */ editDist3ConfigDelete(p->pConfig3); p->pConfig3 = 0; return SQLITE_OK; } pVTab->zErrMsg = sqlite3_mprintf("unknown value for %s.command: \"%w\"", p->zTableName, zCmd); return SQLITE_ERROR; } if( iRank<1 ) iRank = 1; if( zSoundslike ){ | > > > > > > > > > > > > | 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 | return SQLITE_CONSTRAINT_NOTNULL; } if( strcmp(zCmd,"reset")==0 ){ /* Reset the edit cost table (if there is one). */ editDist3ConfigDelete(p->pConfig3); p->pConfig3 = 0; return SQLITE_OK; } if( memcmp(zCmd,"edit_cost_table=",16)==0 ){ editDist3ConfigDelete(p->pConfig3); p->pConfig3 = 0; sqlite3_free(p->zCostTable); p->zCostTable = spellfix1Dequote(zCmd+16); if( p->zCostTable==0 ) return SQLITE_NOMEM; if( p->zCostTable[0]==0 || sqlite3_stricmp(p->zCostTable,"null")==0 ){ sqlite3_free(p->zCostTable); p->zCostTable = 0; } return SQLITE_OK; } pVTab->zErrMsg = sqlite3_mprintf("unknown value for %s.command: \"%w\"", p->zTableName, zCmd); return SQLITE_ERROR; } if( iRank<1 ) iRank = 1; if( zSoundslike ){ |
︙ | ︙ |
Changes to test/spellfix.test.
︙ | ︙ | |||
132 133 134 135 136 137 138 | do_test 3.2 { foreach w $vocab { execsql { INSERT INTO t3(word) VALUES($w) } } } {} | < | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | do_test 3.2 { foreach w $vocab { execsql { INSERT INTO t3(word) VALUES($w) } } } {} foreach {tn word res} { 1 kos* {kosher 3 kiosk 4 kudo 2 kiss 3 kissed 3} 2 kellj* {killjoy 5 kill 4 killed 4 killer 4 killers 4} 3 kellj {kill 4 kills 5 killjoy 7 keel 4 killed 6} } { do_execsql_test 3.2.$tn { SELECT word, matchlen FROM t3 WHERE word MATCH $word ORDER BY score, word LIMIT 5 } $res } do_execsql_test 4.0 { INSERT INTO t3(command) VALUES('edit_cost_table=NULL'); } foreach {tn word res} { 1 kosher {kosher 0 kisser 51 kissers 76 kissed 126 kisses 126} 2 kellj {keels 60 killjoy 68 kills 80 keel 120 kill 125} 3 kashar {kosher 80 kisser 91 kissers 116 kissed 166 kisses 166} } { do_execsql_test 4.1.$tn { SELECT word, distance FROM t3 WHERE word MATCH $word ORDER BY score, word LIMIT 5 } $res } do_execsql_test 5.0 { CREATE TABLE costs2(iLang, cFrom, cTo, iCost); INSERT INTO costs2 VALUES(0, 'a', 'o', 1); INSERT INTO costs2 VALUES(0, 'e', 'o', 4); INSERT INTO costs2 VALUES(0, 'i', 'o', 8); INSERT INTO costs2 VALUES(0, 'u', 'o', 16); INSERT INTO t3(command) VALUES('edit_cost_table="costs2"'); } foreach {tn word res} { 1 kasher {kosher 1} 2 kesher {kosher 4} 3 kisher {kosher 8} 4 kosher {kosher 0} 5 kusher {kosher 16} } { do_execsql_test 5.1.$tn { SELECT word, distance FROM t3 WHERE word MATCH $word ORDER BY score, word LIMIT 1 } $res } finish_test |