]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Drop the forced error from fts3.c and add forced errors to fts2.c and
authorshess <shess@noemail.net>
Thu, 13 Sep 2007 18:16:08 +0000 (18:16 +0000)
committershess <shess@noemail.net>
Thu, 13 Sep 2007 18:16:08 +0000 (18:16 +0000)
fts1.c. (CVS 4427)

FossilOrigin-Name: fec6567a0f8a868cda9bba2a473491dfb17b6c88

ext/fts1/fts1.c
ext/fts2/fts2.c
ext/fts3/fts3.c
manifest
manifest.uuid

index 0912498103d13f2cd1c8392e9b99548630da9fe5..5a69965d47a0e85b2cd0bc2e81ec669f22a82dc7 100644 (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.
index 1d2ad371d82a426401b697af898c94ad964cf972..65ad173abc881a25653668c7977870acacbdeb08 100644 (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
 **
index 605e7c5d27cc07f4f0d0faeff2499828382a2a5b..b39291975a770446243399e356242712c0c1d994 100644 (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
 **
index e5b461d656d4629d05543a9b31d38dd69b12a5a3..47e9f55415493ba634fda1a165cf8cdb5a4b1bc3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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
index a57a8d5389016a5c4ce51af495afd88c88a5cbf5..3ce6c17083e4165ed5a5fe5767407f23fc56bcdc 100644 (file)
@@ -1 +1 @@
-c8d2345200f9ece1af712543982097d0b6f348c7
\ No newline at end of file
+fec6567a0f8a868cda9bba2a473491dfb17b6c88
\ No newline at end of file