More commenting and documentation enhancements in FTS3.

FossilOrigin-Name: 892e286709c4a72aae364b85dd43bea525bb1b4d
This commit is contained in:
drh 2010-03-23 18:24:06 +00:00
parent d6291c9155
commit 7bca0a3660
4 changed files with 37 additions and 33 deletions

View File

@ -313,20 +313,6 @@
SQLITE_EXTENSION_INIT1
#endif
/*
** The testcase() macro is only used by the amalgamation. If undefined,
** make it a no-op.
*/
#ifndef testcase
# define testcase(X)
#endif
/*
** Terminator values for position-lists and column-lists.
*/
#define POS_COLUMN (1) /* Column-list terminator */
#define POS_END (0) /* Position-list terminator */
/*
** Write a 64-bit variable-length integer to memory starting at p[0].
** The length of data written will be between 1 and FTS3_VARINT_MAX bytes.
@ -1312,11 +1298,11 @@ static int fts3PoslistPhraseMerge(
int iCol1 = 0;
int iCol2 = 0;
assert( *p1!=0 && *p2!=0 );
if( *p1==0x01 ){
if( *p1==POS_COLUMN ){
p1++;
p1 += sqlite3Fts3GetVarint32(p1, &iCol1);
}
if( *p2==0x01 ){
if( *p2==POS_COLUMN ){
p2++;
p2 += sqlite3Fts3GetVarint32(p2, &iCol2);
}
@ -1329,11 +1315,12 @@ static int fts3PoslistPhraseMerge(
sqlite3_int64 iPos2 = 0;
if( pp && iCol1 ){
*p++ = 0x01;
*p++ = POS_COLUMN;
p += sqlite3Fts3PutVarint(p, iCol1);
}
assert( *p1!=0x00 && *p2!=0x00 && *p1!=0x01 && *p2!=0x01 );
assert( *p1!=POS_END && *p1!=POS_COLUMN );
assert( *p2!=POS_END && *p2!=POS_COLUMN );
fts3GetDeltaVarint(&p1, &iPos1); iPos1 -= 2;
fts3GetDeltaVarint(&p2, &iPos2); iPos2 -= 2;
@ -1585,6 +1572,7 @@ static int fts3DoclistMerge(
default: assert( mergetype==MERGE_POS_NEAR || mergetype==MERGE_NEAR ); {
char *aTmp = 0;
char **ppPos = 0;
if( mergetype==MERGE_POS_NEAR ){
ppPos = &p;
aTmp = sqlite3_malloc(2*(n1+n2+1));
@ -1689,9 +1677,9 @@ static int fts3TermSelectCb(
**
** The returned doclist may be in one of two formats, depending on the
** value of parameter isReqPos. If isReqPos is zero, then the doclist is
** a sorted list of delta-compressed docids. If isReqPos is non-zero,
** then the returned list is in the same format as is stored in the
** database without the found length specifier at the start of on-disk
** a sorted list of delta-compressed docids (a bare doclist). If isReqPos
** is non-zero, then the returned list is in the same format as is stored
** in the database without the found length specifier at the start of on-disk
** doclists.
*/
static int fts3TermSelect(
@ -1951,7 +1939,9 @@ int sqlite3Fts3ExprNearTrim(Fts3Expr *pLeft, Fts3Expr *pRight, int nNear){
/*
** Evaluate the full-text expression pExpr against fts3 table pTab. Store
** the resulting doclist in *paOut and *pnOut.
** the resulting doclist in *paOut and *pnOut. This routine mallocs for
** the space needed to store the output. The caller is responsible for
** freeing the space when it has finished.
*/
static int evalFts3Expr(
Fts3Table *p, /* Virtual table handle */

View File

@ -53,6 +53,20 @@
*/
#define FTS3_VARINT_MAX 10
/*
** The testcase() macro is only used by the amalgamation. If undefined,
** make it a no-op.
*/
#ifndef testcase
# define testcase(X)
#endif
/*
** Terminator values for position-lists and column-lists.
*/
#define POS_COLUMN (1) /* Column-list terminator */
#define POS_END (0) /* Position-list terminator */
/*
** This section provides definitions to allow the
** FTS3 extension to be compiled outside of the

View File

@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
C Fix\sup\sobsolete\scomments\sin\sFTS3\sto\sconform\sto\sthe\slatest\snomenclature.\nAdd\snew\scomments\sto\sbetter\sexplain\sFTS3\soperation.
D 2010-03-23T15:46:41
C More\scommenting\sand\sdocumentation\senhancements\sin\sFTS3.
D 2010-03-23T18:24:07
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -59,9 +59,9 @@ F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0
F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
F ext/fts3/README.tokenizers 998756696647400de63d5ba60e9655036cb966e9
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
F ext/fts3/fts3.c e3b543c61c1f5228c9dcda94a91fe9715dd478a6
F ext/fts3/fts3.c 20c55bed37307a2cd590387d33a9c8127b354ab4
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
F ext/fts3/fts3Int.h df812ef35f1b47a44ec68a44ec0c2a769c973d85
F ext/fts3/fts3Int.h 70528ba8c33991699f96ecc64112122833cdbdb5
F ext/fts3/fts3_expr.c f4ff02ebe854e97ac03ff00b38b728a9ab57fd4b
F ext/fts3/fts3_hash.c 3c8f6387a4a7f5305588b203fa7c887d753e1f1c
F ext/fts3/fts3_hash.h 8331fb2206c609f9fc4c4735b9ab5ad6137c88ec
@ -796,14 +796,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 0fbdc431e832200efd87efd68456d5906397a219
R 5a13810c3cec98f50780e17022f20048
P 3e4a0082170155b5b779afd075a3ee650530ca68
R 5227b1a15356eed32d5ce7971a352572
U drh
Z e5bf8ffae01fe0893ab06f3cfdcb0bf3
Z 55be70887ecbe2a6b639a9af5e7abde1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFLqOJkoxKgR168RlERAtFJAJ4maNX7/VkCMuFsUBiRvxwUrs9JIQCfagSh
3hvkVzOWUxcE2zfGubCfu9A=
=zHPO
iD8DBQFLqQdKoxKgR168RlERApBYAKCHb5ZhKZNk9Keu/8tRViMQHHsZ+ACfYBue
f4ixLxLJfwNjN74T1v76hhU=
=3nbs
-----END PGP SIGNATURE-----

View File

@ -1 +1 @@
3e4a0082170155b5b779afd075a3ee650530ca68
892e286709c4a72aae364b85dd43bea525bb1b4d