Drop the forced error from fts3.c and add forced errors to fts2.c and

fts1.c. (CVS 4427)

FossilOrigin-Name: fec6567a0f8a868cda9bba2a473491dfb17b6c88
This commit is contained in:
shess 2007-09-13 18:16:08 +00:00
parent d83ae45639
commit 961303c1e7
5 changed files with 53 additions and 15 deletions

View File

@ -1,3 +1,24 @@
/* fts1 has a design flaw which can lead to database corruption (see
** below). It is recommended not to use it any longer, instead use
** fts3 (or higher). If you believe that your use of fts1 is safe,
** add -DSQLITE_ENABLE_BROKEN_FTS1=1 to your CFLAGS.
*/
#ifndef SQLITE_ENABLE_BROKEN_FTS1
#error fts1 has a design flaw and has been deprecated.
#endif
/* The flaw is that fts1 uses the content table's unaliased rowid as
** the unique docid. fts1 embeds the rowid in the index it builds,
** and expects the rowid to not change. The SQLite VACUUM operation
** will renumber such rowids, thereby breaking fts1. If you are using
** fts1 in a system which has disabled VACUUM, then you can continue
** to use it safely. Note that PRAGMA auto_vacuum does NOT disable
** VACUUM, though systems using auto_vacuum are unlikely to invoke
** VACUUM.
**
** fts1 should be safe even across VACUUM if you only insert documents
** and never delete.
*/
/* The author disclaims copyright to this source code.
*
* This is an SQLite module implementing full-text search.

View File

@ -1,3 +1,26 @@
/* fts2 has a design flaw which can lead to database corruption (see
** below). It is recommended not to use it any longer, instead use
** fts3 (or higher). If you believe that your use of fts2 is safe,
** add -DSQLITE_ENABLE_BROKEN_FTS2=1 to your CFLAGS.
*/
#ifndef SQLITE_ENABLE_BROKEN_FTS2
#error fts2 has a design flaw and has been deprecated.
#endif
/* The flaw is that fts2 uses the content table's unaliased rowid as
** the unique docid. fts2 embeds the rowid in the index it builds,
** and expects the rowid to not change. The SQLite VACUUM operation
** will renumber such rowids, thereby breaking fts2. If you are using
** fts2 in a system which has disabled VACUUM, then you can continue
** to use it safely. Note that PRAGMA auto_vacuum does NOT disable
** VACUUM, though systems using auto_vacuum are unlikely to invoke
** VACUUM.
**
** Unlike fts1, which is safe across VACUUM if you never delete
** documents, fts2 has a second exposure to this flaw, in the segments
** table. So fts2 should be considered unsafe across VACUUM in all
** cases.
*/
/*
** 2006 Oct 10
**

View File

@ -1,9 +1,3 @@
/* fts3 is not ready for use. So don't use it yet! Contact
** shess@google.com with questions.
*/
#ifndef SQLITE_FTS3_IS_NOT_READY
#error fts3 is not ready for use.
#endif
/*
** 2006 Oct 10
**

View File

@ -1,5 +1,5 @@
C Add\san\simplicit\s(HIDDEN)\sdocid\scolumn.\s\sThis\sworks\sas\san\salias\sto\nrowid,\ssimilar\sto\show\sthings\swork\sin\sSQLite\stables\swith\sINTEGER\nPRIMARY\sKEY.\s\sAdd\stests\sto\sverify\soperation.\s(CVS\s4426)
D 2007-09-13T18:14:49
C Drop\sthe\sforced\serror\sfrom\sfts3.c\sand\sadd\sforced\serrors\sto\sfts2.c\sand\nfts1.c.\s(CVS\s4427)
D 2007-09-13T18:16:08
F Makefile.in cbfb898945536a8f9ea8b897e1586dd1fdbcc5db
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -24,7 +24,7 @@ F ext/README.txt 913a7bd3f4837ab14d7e063304181787658b14e1
F ext/fts1/README.txt 20ac73b006a70bcfd80069bdaf59214b6cf1db5e
F ext/fts1/ft_hash.c 3927bd880e65329bdc6f506555b228b28924921b
F ext/fts1/ft_hash.h 1a35e654a235c2c662d3ca0dfc3138ad60b8b7d5
F ext/fts1/fts1.c d07c6eeb3cedb19c5d74b53ae71f1c47d6a782cc
F ext/fts1/fts1.c e45ff77a01524470ae1c2837e201654627ff1f19
F ext/fts1/fts1.h 6060b8f62c1d925ea8356cb1a6598073eb9159a6
F ext/fts1/fts1_hash.c 3196cee866edbebb1c0521e21672e6d599965114
F ext/fts1/fts1_hash.h 957d378355ed29f672cd5add012ce8b088a5e089
@ -37,7 +37,7 @@ F ext/fts1/simple_tokenizer.c 1844d72f7194c3fd3d7e4173053911bf0661b70d
F ext/fts1/tokenizer.h 0c53421b832366d20d720d21ea3e1f6e66a36ef9
F ext/fts2/README.tokenizers 2ff290e0a130f6e7611f2e608cb3b5aaea721abc
F ext/fts2/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
F ext/fts2/fts2.c 9a02a0db89b29b6185557ca7ca2d188a814ea64d
F ext/fts2/fts2.c 02720dd6e35c1ec836d17de2c9941ee1c369d884
F ext/fts2/fts2.h da5f76c65163301d1068a971fd32f4119e3c95fa
F ext/fts2/fts2_hash.c cafebb4620d19684c4c9872530012441df60f503
F ext/fts2/fts2_hash.h e283308156018329f042816eb09334df714e105e
@ -49,7 +49,7 @@ F ext/fts2/fts2_tokenizer1.c 8a545c232bdffafd117c4eeaf59789691909f26a
F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0
F ext/fts3/README.tokenizers a97c9a55b3422f6cb04af9de9296fe2447ea4a78
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
F ext/fts3/fts3.c 6d266d7250a544ae27026dc5caf655b94f63d74b
F ext/fts3/fts3.c 6b390b5054f9267ee5778dccffc856a3d70e7b70
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
F ext/fts3/fts3_hash.c 84654768178452b00bbc986dd878a8299dc1e3dc
F ext/fts3/fts3_hash.h af585d6867d478fc0457f64cfaae60e09541e63a
@ -577,7 +577,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P ca669eaf1b4af441741129bee4af02f32a7c74b8
R a51a9cf24cdebc5c4ac36a19e3d14834
P c8d2345200f9ece1af712543982097d0b6f348c7
R ef2d8ee95ba1b46aa99333d48f97eddd
U shess
Z 890136427fcf1284643fc3a90d814552
Z 7e45d9fdd88f579666a7625daeccbaf8

View File

@ -1 +1 @@
c8d2345200f9ece1af712543982097d0b6f348c7
fec6567a0f8a868cda9bba2a473491dfb17b6c88