Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix an fts4 problem to do with the handling of phrases that contain zero tokens. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
caba5be0b2bdaf4eb4af9af267c0c22d |
User & Date: | dan 2015-04-21 12:06:53.262 |
Context
2015-04-21
| ||
15:16 | Change an assert() in the aggregate query code generator into a testcase(). (check-in: d1e6bc918b user: drh tags: trunk) | |
12:06 | Fix an fts4 problem to do with the handling of phrases that contain zero tokens. (check-in: caba5be0b2 user: dan tags: trunk) | |
03:13 | Fix some identifier name de-quoting issues in the foreign key and trigger logic. (check-in: 59e92bd952 user: drh tags: trunk) | |
Changes
Changes to ext/fts3/fts3.c.
︙ | ︙ | |||
4613 4614 4615 4616 4617 4618 4619 | static void fts3EvalStartReaders( Fts3Cursor *pCsr, /* FTS Cursor handle */ Fts3Expr *pExpr, /* Expression to initialize phrases in */ int *pRc /* IN/OUT: Error code */ ){ if( pExpr && SQLITE_OK==*pRc ){ if( pExpr->eType==FTSQUERY_PHRASE ){ | < > > | | | | > | 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 | static void fts3EvalStartReaders( Fts3Cursor *pCsr, /* FTS Cursor handle */ Fts3Expr *pExpr, /* Expression to initialize phrases in */ int *pRc /* IN/OUT: Error code */ ){ if( pExpr && SQLITE_OK==*pRc ){ if( pExpr->eType==FTSQUERY_PHRASE ){ int nToken = pExpr->pPhrase->nToken; if( nToken ){ int i; for(i=0; i<nToken; i++){ if( pExpr->pPhrase->aToken[i].pDeferred==0 ) break; } pExpr->bDeferred = (i==nToken); } *pRc = fts3EvalPhraseStart(pCsr, 1, pExpr->pPhrase); }else{ fts3EvalStartReaders(pCsr, pExpr->pLeft, pRc); fts3EvalStartReaders(pCsr, pExpr->pRight, pRc); pExpr->bDeferred = (pExpr->pLeft->bDeferred && pExpr->pRight->bDeferred); } } |
︙ | ︙ |
Added test/fts3expr5.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 | # 2006 September 9 # # 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. # #************************************************************************* # This file implements regression tests for SQLite library. The # focus of this script is testing the FTS3 module. # set testdir [file dirname $argv0] source $testdir/tester.tcl set testprefix fts3expr5 # If SQLITE_ENABLE_FTS3 is defined, omit this file. ifcapable !fts3 { finish_test return } #------------------------------------------------------------------------- # Various forms of empty phrase expressions. # do_execsql_test 1.0 { CREATE VIRTUAL TABLE t0 USING fts3(x); SELECT rowid FROM t0 WHERE x MATCH ''; } {} do_execsql_test 1.1 { SELECT rowid FROM t0 WHERE x MATCH '""'; } {} do_execsql_test 1.2 { SELECT rowid FROM t0 WHERE x MATCH '"" ""'; } {} do_execsql_test 1.3 { SELECT rowid FROM t0 WHERE x MATCH '"" OR ""'; } {} do_execsql_test 1.4 { SELECT rowid FROM t0 WHERE x MATCH '"" NOT ""'; } {} do_execsql_test 1.5 { SELECT rowid FROM t0 WHERE x MATCH '""""'; } {} finish_test |