Commit Graph

521 Commits

Author SHA1 Message Date
dan
af4c214e1f Changes to allow FTS4 tables to be created without the underlying %_docsize table (in order to save space).
FossilOrigin-Name: 31989b18f53d97eddfb39660ef04fbf9463583e0
2010-11-02 17:41:52 +00:00
dan
cfddb09e3b Test cases and minor changes to make fts3 more robust in the face of a corrupt database.
FossilOrigin-Name: b770290561f5450e4d985ca0050ef5eb01657c80
2010-10-30 15:21:13 +00:00
dan
797f3ee87c Add extra test cases and changes to fts3 to avoid crashing on a corrupt database.
FossilOrigin-Name: 252f0e457d3e33404df87d3e6c44ede61b78319c
2010-10-29 18:45:10 +00:00
dan
8aaa252d8c Fix a buffer overread in fts3 that can occur if the database is corrupt.
FossilOrigin-Name: 84194c4195d7144ff7f9cedcdc74fdd908f3bfcd
2010-10-27 16:52:27 +00:00
dan
8c30711208 In fts4, store the total number of bytes of for all records in the table in the %_stat table.
FossilOrigin-Name: 941647d121ac60e2eabc998cfe79b157fb918d7e
2010-10-27 10:55:54 +00:00
dan
c7c91257d5 More coverage tests for fts3.c.
FossilOrigin-Name: 7a2f2864002d4e9a487e2779ae05513880ecb4d1
2010-10-26 07:14:25 +00:00
dan
e25ac099f1 Further improvements to coverage of fts3.c. Fixes for bugs revealed by the same.
FossilOrigin-Name: 918b609290127f54326c638d82837d117398eade
2010-10-25 19:01:25 +00:00
dan
ddf80eb8ce Test coverage improvements for fts3.c.
FossilOrigin-Name: a8b1d99899678b72c2a487909eabed321593d55f
2010-10-25 12:47:43 +00:00
dan
378d0ab97b Fixes for the matchinfo() function related to FTS4 common token handling.
FossilOrigin-Name: deb80eac9112d21835dfd3cee08ed8f09d975bf7
2010-10-23 19:07:30 +00:00
dan
789cb8f5cf Add missing comments and fix compiler warnings in new FTS3/4 code. Other minor fixes too.
FossilOrigin-Name: 1c9c70fec3c88319f7b2efe5316694a6ce0ab1a5
2010-10-22 16:44:39 +00:00
dan
ca3b8f9c86 Merge trunk changes into experimental branch.
FossilOrigin-Name: fd1e5cade04961c2f5438a1dfcc2e15eafb4503f
2010-10-21 15:49:47 +00:00
dan
4e76cc3650 Updates to FTS4 to improve performance and make more accurate cost estimates for prefix terms.
FossilOrigin-Name: d0a450ce78e99f55c862f26f9332786660007a0a
2010-10-20 18:56:04 +00:00
dan
4f7c5e684a Experimental changes to fts4 to try to selectively avoid loading very large doclists.
FossilOrigin-Name: 5ae0ba447a561e3b6637b52f9b83a9fc683d2572
2010-10-19 14:07:59 +00:00
dan
af7626f5fb Add tests to e_delete.test.
FossilOrigin-Name: fab3b383bb2c4764a56811f22ff4c783441918e8
2010-09-23 18:47:36 +00:00
dan
b51d2fa88d Further tests and changes to make the r-tree module more robust.
FossilOrigin-Name: 7ff3574b9c581b5e1f2b6f98028106c638e59bb7
2010-09-22 19:06:02 +00:00
dan
bd188afd4c Add new file rtreeA.test, to test that the r-tree extension doesn't crash if it encounters a corrupt or inconsistent database.
FossilOrigin-Name: 68a305fd5ac917317fee2ef6670ac389a120e502
2010-09-22 14:19:53 +00:00
drh
9fe5b85d36 Remove additional occurrences of <ctype.h> from FTS2.
FossilOrigin-Name: ee52589c80a6d37dc8c7a86a0e3b531ec4dd8d45
2010-09-17 17:10:31 +00:00
dan
8786f7f589 Have all FTS3 queries obtain a read or write table-lock at the shared-cache level before doing anything else.
FossilOrigin-Name: 018e82c775d0fb8c0d90cddf7a87c20c8c8172a9
2010-09-17 15:28:41 +00:00
drh
f2fcd0750b Completely remove all trace of ctype.h from FTS2.
FossilOrigin-Name: 876845661a944ec1c841d1e2486d070efb76e5cd
2010-09-17 01:07:53 +00:00
dan
d9e430e953 When building from the amalgamation with ENABLE_RTREE defined, do not try to include sqlite3rtree.h.
FossilOrigin-Name: 5b63e981f1bef26eae0da3144a08bdc54dc36709
2010-09-11 05:15:37 +00:00
dan
9977edc7c6 Changes to comments and type names in rtree.c.
FossilOrigin-Name: 7c4f80ad272138cd4ab30455fae6a36498362933
2010-08-31 15:54:21 +00:00
dan
18ec96b3a3 Add the "circle" test geometry callback to test_rtree.c. And tests for the same.
FossilOrigin-Name: 169b8ba4be9c3941c742eded80dbacdcd2465bc4
2010-08-31 15:02:00 +00:00
dan
c223b8f1a8 When generating sqlite3.h, append the contents of sqlite3rtree.h.
FossilOrigin-Name: fc4d75370bad9021d01b76dbb1b8dde9ff223d2c
2010-08-30 18:39:49 +00:00
dan
7bddb7550b Add tests (and associated fixes) to restore coverage of rtree.c.
FossilOrigin-Name: b06f4695bdab244d9c764c082cd434a764dc5c29
2010-08-30 15:43:45 +00:00
dan
3b5a7a377c Add file sqlite3rtree.h.
FossilOrigin-Name: e1d9ffce0f84469eeb926f50030cb772de98a652
2010-08-30 11:34:39 +00:00
dan
9508daa929 Add code to allow user-defined searches of r-tree tables. Still largely untested.
FossilOrigin-Name: 782ca3b716ee1ecb0dfb5ab6f21dfd73d41758e4
2010-08-28 18:58:00 +00:00
dan
897230eb7a Fix a couple of memory leaks in r-tree that can occur following an OOM condition.
FossilOrigin-Name: 1975a27cdec09e1dad4ca8281a87dd7754c02c3e
2010-08-26 14:15:37 +00:00
dan
c23454023e Remove unreachable condition from rtree.c.
FossilOrigin-Name: 90f40cd36860d3af13ec24575dff7cc1f57ac493
2010-08-26 11:27:22 +00:00
dan
2bf19178f7 Improve coverage of rtree.c some more.
FossilOrigin-Name: bee1959dde19ebec20a7ffcb732aee0c8bb2e67d
2010-08-26 07:59:10 +00:00
dan
f836afd44a Further test coverage improvements for rtree.c.
FossilOrigin-Name: 05f6c1aebbe757dd3b54fd027057b9db7ae3a990
2010-08-25 19:04:38 +00:00
dan
92e01aafe1 Test cases to improve coverage of rtree module. Fixes associated with the same.
FossilOrigin-Name: 865cec04e4d814f63fb71feb67de7f06f8d54035
2010-08-25 17:53:17 +00:00
dan
a235d0ca63 Fixes to allow fts3 tables to be renamed mid-transaction.
FossilOrigin-Name: d1c875320a045c3938c765ceb543dfba1a0ecf0b
2010-08-24 16:59:47 +00:00
drh
ee2c813b72 The R-tree module should not assume that its shadow tables are consistent.
If a problem is found in a shadow table, return SQLITE_CORRUPT.

FossilOrigin-Name: 7f2f71cc9e3c39093f09231f448576cff6afb5fe
2010-08-24 01:49:47 +00:00
dan
036391f7f8 Update an r-tree extension test case to account for recent changes to the query planner. Also fix a comment in rtree.c.
FossilOrigin-Name: eaaca669a4afc83906806b22365b010c83bc3db8
2010-08-11 12:26:46 +00:00
drh
f053d5b6c7 Fix two comment typos that were reported on the mailing list.
FossilOrigin-Name: 88bf9016277c133dfbf4f4b2be0c35c9fe9fabd6
2010-08-09 14:26:32 +00:00
drh
c78db070a3 Remove all vestiges of ctype.h from FTS3.
FossilOrigin-Name: b8b465ed2c56b23b50334680a2a940885b1ac530
2010-08-06 19:00:12 +00:00
drh
60176fa925 Updates to the README.txt file for ICU.
FossilOrigin-Name: d37443d33388b402e610a00c362a1e2e79548801
2010-07-30 00:31:08 +00:00
dan
a69f7d5aa5 Re-introduce the prefix-search optimization of [feef1b15d6], which was lost in a reorganization of FTS3 code.
FossilOrigin-Name: d692434b4935e8e7858230af1c126b0be8203077
2010-07-19 11:16:36 +00:00
dan
d846c5e047 In the async-IO module, do not increment the open file-counter until after an "open file" event has been added to the event queue. Otherwise, an OOM may cause the system to increment the counter even though no file was successfully opened.
FossilOrigin-Name: 15a190dc5769beb53b89254543e744a964cd86ed
2010-07-12 12:22:29 +00:00
shaneh
b638a3d3eb Fix some MSVC compiler warnings in the ASYNC extension.
FossilOrigin-Name: b951c8675df3e719c30a1dd94200b7c04252a3ea
2010-07-07 16:49:46 +00:00
dan
78f1e53840 Change the async-IO extension to return SQLITE_IOERR_SHORT_READ when appropriate. This prevents a valgrind warning in the test suite.
FossilOrigin-Name: d9e3287900ae4aa7722ad0132bb8d6cd2755d3a6
2010-07-07 11:05:21 +00:00
shaneh
8a300f8095 Fix a couple more compiler warnings under MSVC.
FossilOrigin-Name: 26bc27e3f4c8a666f3358f73fc21eccdec3508f6
2010-07-02 18:15:31 +00:00
dan
6d3cb2fbae Fix for [9861b74ab9]. Correctly handle strings with zero tokens in the fts3 offsets() function.
FossilOrigin-Name: d37034f7fc46b83be681247fde97823736c994cc
2010-03-24 15:57:33 +00:00
drh
7bca0a3660 More commenting and documentation enhancements in FTS3.
FossilOrigin-Name: 892e286709c4a72aae364b85dd43bea525bb1b4d
2010-03-23 18:24:06 +00:00
drh
d6291c9155 Fix up obsolete comments in FTS3 to conform to the latest nomenclature.
Add new comments to better explain FTS3 operation.

FossilOrigin-Name: 3e4a0082170155b5b779afd075a3ee650530ca68
2010-03-23 15:46:41 +00:00
dan
3f0d9d3846 Have the xUpdate() method of the rtree module virtual table implementation set the *pRowid output variable when inserting a row. Fix for [dd3ba6063a].
FossilOrigin-Name: f31d22489d44701c89cb13c663dfa1a6cc04f900
2010-03-19 19:02:27 +00:00
dan
3b6f4c06ac Rewrite a couple of queries used internally by FTS3 to take advantage of the "SELECT max(x) FROM ..." optimization.
FossilOrigin-Name: b7e42ae77443b33e0ab83265064830594094dc7c
2010-03-19 06:59:19 +00:00
drh
71663ad0c1 Mark internal routines as "static" in FTS3.
Ticket [b1552d0fa7].

FossilOrigin-Name: 39b34ac4a7bd06144b3630c0ad71bad0615418b6
2010-03-18 16:34:44 +00:00
drh
3a3dd3ac8d Improved error message when the right-hand operand of MATCH in FTS3 is
not a valid search expression.  Ticket [170872f1c3].

FossilOrigin-Name: bea9258643edfeb98ebf59d93fa18a14e4221fea
2010-03-15 20:53:01 +00:00
drh
9396a41e6e Fix FTS3 so that it does not run illegal SQL and cause a spurious log
message.  Ticket [42d45a693e6].

FossilOrigin-Name: f186b6a61909be1d65b76a6fbaa42f57bbd0d1e5
2010-03-15 19:27:55 +00:00
drh
40d238e09f Disable FTS4 (which is incomplete and not ready for publication) to prevent
accidental use.

FossilOrigin-Name: 87a6a9970b8cea25fc5f8ff03d87762dd1166899
2010-03-09 12:35:21 +00:00
dan
89374d2309 Fix a one byte buffer overread in fts3.
FossilOrigin-Name: 6e3e014af91601ed1f3a9cbe23f7c4260a4d177f
2010-03-05 17:27:01 +00:00
shaneh
84f4b2f237 Minor changes to silence some compiler warnings with MSVC.
FossilOrigin-Name: 4927c62d6214d93e582bf1266215ed3519630c15
2010-02-26 01:46:54 +00:00
drh
31caa42afd Remove an unused variable from rtree.
FossilOrigin-Name: 8e60d3995a1ea940de9751dd3bbd7ef41b0bb00a
2010-02-24 18:25:58 +00:00
dan
5dcb3937b6 Fix for [e9a9fde1f4]. When opening an existing rtree, determine the node size by inspecting the root node of the r-tree structure (instead of assuming it is a function of the page-size).
FossilOrigin-Name: ebc9433fddf78ef7b4237686951d8d79c1c98f03
2010-02-16 10:59:40 +00:00
dan
56f2996b48 Fix a segfault in fts3 that may occur if the snippet, offsets or matchinfo functions are used in a query that does not contain a MATCH clause.
FossilOrigin-Name: 14ab536a96f81595ab8c3dcd4b72075f1a827c8b
2010-02-10 05:33:17 +00:00
drh
b4a1fed2ea Add a new full-text search variant that tracks the total number of documents
and document sizes, to make ranking search results easier.  Currently
called FTS4.

FossilOrigin-Name: 1b6e6094c88214e02c9e3638932997ac20bfe413
2010-02-03 19:55:13 +00:00
dan
d3789b98a7 Fix two similar problems in fts3 that meant that an OOM error could cause a memory leak.
FossilOrigin-Name: 701ef64b3dbf45e52043e79e528002bd4b7a21e2
2010-01-22 15:48:18 +00:00
dan
3996a06236 Add coverage tests for fts3_snippet.c. Also fixes related to the same.
FossilOrigin-Name: 5e9d8ccae9731f380527463ef87ddcd216b4b721
2010-01-15 17:25:52 +00:00
dan
f596da5cc6 Update comments in fts3_snippet.c.
FossilOrigin-Name: dd9689b7c31861484f8d8062478ae73d3c940902
2010-01-12 17:57:30 +00:00
dan
9a34020f05 Modify snippets code to run more efficiently. And to avoid a bug relating to snippets based on full-text queries that contain duplicate terms.
FossilOrigin-Name: a2b1183d9e9898d06d623b342bbb552e85a9b3f6
2010-01-11 12:00:47 +00:00
dan
1a54b8ecfa Fix handling of an OOM error in the fts3 offsets() function. Fix a couple of snippet related test cases in e_fts3.test.
FossilOrigin-Name: 14dc46a74aafe44c0bf7dffd26268395b2c5edb2
2010-01-09 07:33:54 +00:00
drh
819443e506 Update comments in fts3.c to more accurately describe the doclist format.
FossilOrigin-Name: e424a0307359fee6875424c10ecad1a10acfba0e
2010-01-08 23:01:32 +00:00
dan
3174598a64 Fixes to problems in FTS3 snippet() function found by th3 tests.
FossilOrigin-Name: 3b5ccd2682176929f4da8a3f39a7e8f58b179f18
2010-01-07 10:54:28 +00:00
dan
c06013dca7 Fix a segfault that can occur following an OOM in the FTS3 snippet() function
FossilOrigin-Name: c7e5966e3b031672f149d0b6e1f75f9bc40868fa
2010-01-06 18:36:27 +00:00
dan
b023b04fcb Change the fts3 snippet function to return (hopefully) more relevant snippets in less time.
FossilOrigin-Name: 8a208223a74d451f60d9cd707d63fb7d157d1737
2010-01-06 17:19:21 +00:00
shaneh
bb6b9878d7 Removed compiler warnings in MSVC.
FossilOrigin-Name: 4ecb4725b76042ac414caf90039d5d0a5f8f7068
2010-01-05 14:18:54 +00:00
dan
a98af17af6 Add experimental implementation of FTS3 functions matchinfo() and snippet() (not enabled by default).
FossilOrigin-Name: 51f7ee844057086789dcfcdcba7daf45343cae62
2010-01-02 19:02:02 +00:00
shaneh
46aae3c0da Changes to remove warnings in MSVC build.
FossilOrigin-Name: 6cf76c2ae25d6e58926637ecd42eed6b300b1a25
2009-12-31 19:06:23 +00:00
dan
8718183ea5 Fix a bug triggered by optimizing an FTS3 table when there are no segments on disk but pending terms in the hash table.
FossilOrigin-Name: a3b50e4f80ca2dacc1f72435b8c72d55ffdb64e7
2009-12-29 10:32:36 +00:00
dan
3540c1f7b8 Add the experimental FTS3 matchinfo() function. Provides details of the match that may be used for result ranking and other purposes.
FossilOrigin-Name: 37a1de02d1d8a34604f1bee896eaf579d4ba149a
2009-12-22 18:56:19 +00:00
dan
e61fc3b6a8 Fix a problem in FTS3 phrase queries. Add tests to check that it really is fixed.
FossilOrigin-Name: 956de051f43dfc2f178a7820981da4bf69927190
2009-12-20 15:00:19 +00:00
drh
6695f47e93 Change the REGEXP function in ICU to require exactly 2 arguments.
FossilOrigin-Name: c34cf23efb92d9bbb7cf4245d372e47182771f63
2009-12-17 02:13:39 +00:00
dan
c007646318 Handle an unhandled OOM error code that occurs in fts3 with SQLITE_TEST defined.
FossilOrigin-Name: 82b069998e10b1a9a1d5e6bd85877d7b654c78bd
2009-12-14 15:17:27 +00:00
dan
971742058f Fix a broken assert() in fts3_write.c. Also fix a couple of compiler warnings in fts3 code.
FossilOrigin-Name: a730a05b39c45138765df98d34b9db1ab4e72152
2009-12-14 14:49:57 +00:00
dan
ca6be31b69 Tests to cover a few extra branches in fts3.c.
FossilOrigin-Name: 06b72b007393dc34d75a8bb16ce0e4507d5f8faa
2009-12-12 19:15:27 +00:00
dan
55be7449f9 Further fts3 coverage tests.
FossilOrigin-Name: d2a8c0f683271f5fb8c9badfb13e4e46fd78db71
2009-12-12 16:04:32 +00:00
dan
45bcd6c274 Extra tests for coverage of fts3 code.
FossilOrigin-Name: eee921a99e69a9cd868a89de620bf47c4e26e4b5
2009-12-12 13:16:09 +00:00
dan
f5fff2a7b2 Add coverage test cases for fts3.
FossilOrigin-Name: 8fcb0478c82507403165719724b62a308cb83b57
2009-12-12 09:51:25 +00:00
dan
601cd9aa24 Change the fts3 test interface used to configure the advisory node size paraemeter.
FossilOrigin-Name: 87fc0ce151c89beb5a43b65c0b1706f340c0c173
2009-12-11 16:03:45 +00:00
dan
4f887abc4c Rationalize some code in fts3 used by optimize operations, queries of the pending-terms hash table and segment merges. Add the "INSERT INTO tbl(tbl) VALUES('optimize')" syntax.
FossilOrigin-Name: 29476da353df4c67fe744c1c5f466ba5b9c1a54b
2009-12-11 12:29:04 +00:00
shaneh
ef4114dd24 Avoid declaring and freeing test variables if SQLITE_TEST not defined.
FossilOrigin-Name: c2d22960f652264c48ec41b9ca4047aa142d86f7
2009-12-10 21:11:28 +00:00
dan
dcf3cc1f91 Remove some unused macros and types from fts3.c.
FossilOrigin-Name: 83a80efe8a6c3d53a7f80b4c5f4e0f40aa0aa52f
2009-12-10 18:38:54 +00:00
dan
0502e56415 Fix handling of "WHERE col MATCH ? AND docid = ?" clauses in fts3.
FossilOrigin-Name: 6cbbae849990d99b7ffe252b642d6be49d0c7235
2009-12-10 18:29:04 +00:00
dan
2c11d597c7 Fix an OOM related problem in the snippet() and offsets() functions of fts3.
FossilOrigin-Name: 61efff414254f209f1c69728ae2da3b3888b7290
2009-12-10 18:20:31 +00:00
dan
b893721a45 Changes to fts3 to avoid flushing data to disk within a SELECT statement.
FossilOrigin-Name: 48c0db0eb2d134bb302bb5eca6beb0ec46736257
2009-12-10 16:04:25 +00:00
dan
18ff7fa6b4 Improve test coverage of fts3.c.
FossilOrigin-Name: 56b6432f8622d53ffd3a4d9a2244114f8531ed71
2009-12-09 14:39:41 +00:00
dan
6d67e33776 Mark fts3ReallocOrFree and fts3InitVtab as static. Ticket [ff44d82f3b].
FossilOrigin-Name: a9038306c33c88120d8bef27209d8f0641c85c9b
2009-12-09 05:30:36 +00:00
dan
84db21ec6a Add tests to improve coverage of fts3. Associated bugfixes.
FossilOrigin-Name: f0eac4175aee6c50ee68acc253f76fbe44574250
2009-12-08 19:05:53 +00:00
dan
7bf44fc018 Remove a redundant line from fts3.
FossilOrigin-Name: cd50acf37fd1e3b388f98fb2df7ed03cff454b24
2009-12-07 16:26:52 +00:00
shaneh
0d935576a4 Move some SQLITE_TEST code down to avoid mixing code and variable declarations.
Fix a test for high-order bit handling in sqlite3Fts3InitTokenizer().

FossilOrigin-Name: fad43d290f9489726aaa2e999a17ea17ed78b27b
2009-12-07 16:18:37 +00:00
dan
ff32e39c8e Add some tests for OR, AND and NOT operations to fts3rnd.test. Add tests to check that errors are returned when bad arguments are passed to fts3 functions snippet, offsets and optimize. Minor fix for the same
FossilOrigin-Name: 5811df3f0412598d189d46b58de4deff24573651
2009-12-07 12:34:51 +00:00
dan
28f372f6d9 Fix another bug in 3-way NEAR queries.
FossilOrigin-Name: 3bb13a06521b54194c9f3eb44e0dc42bacf016a4
2009-12-05 14:29:22 +00:00
dan
6e053f9c23 Fix some problems with FTS3 and 3-way NEAR queries.
FossilOrigin-Name: 23dc6fb5b28712d1ba18dc7ddb3f2ef3b469d611
2009-12-05 11:37:19 +00:00
dan
165b67cb36 Fix a problem involving a 3-way NEAR query.
FossilOrigin-Name: 507890a9139875b1b594225c432c714f67312c0e
2009-12-04 19:07:24 +00:00
dan
acf28fbdd8 Modify [2ad1461f25] to avoid leaving a prepared statement in "active" state following an OOM error in FTS3.
FossilOrigin-Name: 69c21ee46aeeb624fd8638b17ff7259a3e5f9a46
2009-12-04 14:11:33 +00:00
drh
406a15ad8b Fix an FTS3 problem where an OOM error was not being propagated back
out to the top-level interface.

FossilOrigin-Name: 2ad1461f255c2499367b706a5ec65b44c1fc1618
2009-12-04 13:42:59 +00:00
dan
e2e5145441 Fix an incorrect assert() in fts3.c. Add further fts3 tests.
FossilOrigin-Name: 75863c2d55e0801add5b8dcf88d575c5c870af04
2009-12-03 17:36:22 +00:00
shaneh
e585b8f05c Updates to FTS3 to correct compiler warnings under MSVC.
FossilOrigin-Name: 37495b55ffbdc2db4482367ac7d8e32d4d71d58e
2009-12-03 06:26:46 +00:00
drh
c12075b3b2 Change an error message in FTS3 to avoid using an uninitialized variable.
FossilOrigin-Name: 620a8a2b38f5f2ad3db304b2bc88360285c174db
2009-12-02 20:25:57 +00:00
dan
19125aaf68 Fix an uninitialized value read in sqlite3async.c.
FossilOrigin-Name: 1cf2136c39239a6fea6ac2a555f55865dd517d93
2009-12-02 18:16:56 +00:00
dan
bc7c039ce2 Clear the Pager.dbModified flag when unlocking the database. Assert that it is clear when locking the database.
FossilOrigin-Name: d17ec16b7c5051c904c09580a856593b2fb85edc
2009-12-02 14:44:32 +00:00
dan
6bd3b2aa64 Use #include "sqlite3.h" instead of <sqlite3.h> in fts3Int.h.
FossilOrigin-Name: 7737db490ceba02c29c36fe181b4e7895b40aa75
2009-12-01 17:08:09 +00:00
dan
8c4499764b Add typedefs for i16 and u8 to fts3Int.h when not building via the amalgamation method.
FossilOrigin-Name: fa56c1c47296c2f9ba1de9450d421dd06fde5a6a
2009-12-01 17:05:50 +00:00
drh
65e8c82e1a Changes to the TCL interface header to allow it to be compiled independently
from the amalgamation.

FossilOrigin-Name: 58113932d93926b4aa037a7487105a55f883cd0a
2009-12-01 13:57:48 +00:00
dan
3acb07d6c3 Open a savepoint within the FTS3 optimize() function.
FossilOrigin-Name: 4924fbb244bd1b7103e29e045812cb1c4d2d81c8
2009-12-01 13:48:13 +00:00
dan
612b1d5cd0 Fix a segfault that can occur when querying an empty FTS3 table. Also restore the rowid/docid conflict handling to work as it did in version 3.6.20.
FossilOrigin-Name: c022f66b5a65aa54d5ebd55cfe941118a2042280
2009-12-01 12:00:22 +00:00
drh
ff3f307cd0 Test coverage improvements in the FTS3 porter stemmer.
FossilOrigin-Name: 6d112bfd53998b8f6693d3f2edbcd5ab4cdf5fb1
2009-11-30 19:48:16 +00:00
drh
0a62730d3f Updates to snippet() and offsets() functions of FTS3 so that they work
sanely following an OOM fault.

FossilOrigin-Name: b939a37a8ce296785a300e79ab9d3d87ad91343f
2009-11-28 21:33:21 +00:00
drh
9287d93c17 Change FTS3 to detect when the RHS of the MATCH opertor encounters an OOM
during string format conversion and report back an SQLITE_NOMEM error.

FossilOrigin-Name: 31eed4f8f95f0799d634eccbd9e09cb58172d250
2009-11-28 17:23:47 +00:00
drh
44c1e5a13c Remove all benign OOM failure opportunities from the FTS3 hash table
implementation.  All OOM faults cause SQLITE_NOMEM to be returned.

FossilOrigin-Name: 80754d383a0e890ea3f315dab941b9f166481ddd
2009-11-28 17:07:42 +00:00
dan
8e9f6aedae Add a test case for creating an FTS3 table with no module arguments or opening/closing brackets in the CREATE VIRTUAL TABLE statement.
FossilOrigin-Name: a9cba7ea0a06efa7a63a3069b219cc30fb127e98
2009-11-28 15:35:16 +00:00
dan
81fa6dc319 Fix a bug introduced by the fts3 refactoring (segfault when creating a table with zero module args). Also a fix to handle an OOM error.
FossilOrigin-Name: eada284bc10cafcab9beb3473bb0c70b3b4de2f9
2009-11-28 12:40:32 +00:00
dan
f6d7b055fa Remove a C++ism accidentally added to fts3.c.
FossilOrigin-Name: 97d332416069d2fbce323740b276d0e7523eeee5
2009-11-27 12:14:47 +00:00
dan
7eee299243 Add some missing comments to fts3 files. No source code changes.
FossilOrigin-Name: b6402b2065b844acb3f1bb94ad964568706bcb86
2009-11-21 03:03:21 +00:00
dan
e6828f5503 Merge leaf accidentally created by [1c4984c62f].
FossilOrigin-Name: cae949ce971ca216e0f8880b2f93866619fa05be
2009-11-20 10:23:12 +00:00
dan
d1414c58e5 Improve comments and other things in fts3_write.c.
FossilOrigin-Name: 1cf0e3cc14bad22867e740736c2886dc1c4a48dc
2009-11-20 05:05:19 +00:00
dan
d313865550 Minor optimizations to fts3 code.
FossilOrigin-Name: b456eacbbb16513d1b27e90015ea58a6dc92cc3b
2009-11-20 02:24:15 +00:00
dan
8f4a4f24dd Fix a performance regression introduced while reworking the fts3 code.
FossilOrigin-Name: 7cd178a72ab99c94fdacffb19aad819ae600e57d
2009-11-19 18:28:45 +00:00
dan
16708c4a0d Fix some fts3 related issues with the autoconf and amalgamation build systems.
FossilOrigin-Name: 3b17924754343c0163464dabf01a9c46ffccef28
2009-11-19 15:25:25 +00:00
dan
5dc842ddf7 Fix problems introduced into fts3 as part of the refactoring.
FossilOrigin-Name: fa0998e19d984ee57f4f506c34eb858026cc49c3
2009-11-19 00:15:27 +00:00
dan
bd61689382 Add some missing comments and fix some other issues in fts3 code.
FossilOrigin-Name: 2fe579e778b75fbf503c02e01e5424c1926f2b49
2009-11-18 15:35:58 +00:00
dan
f13b704ee6 Improvements to the way fts3 reads the full-text index.
FossilOrigin-Name: 45c051e78651d8204c17cecdda2bde705698881f
2009-11-17 12:52:10 +00:00
dan
948a5f88ea Add a few extra coverage test cases for fts3.
FossilOrigin-Name: f29c8fcade4aadeae3824975cf59f306c11c906b
2009-11-16 16:36:23 +00:00
dan
91f0ce39e4 Further OOM testing for fts3 code. Add Tcl code implementing an integrity-check for fts3.
FossilOrigin-Name: c27d46b33e8596b45c562c2742b05030e8899092
2009-11-14 11:41:00 +00:00
dan
09977bb9f0 Start reworking fts3 code to match the rest of SQLite (code conventions, malloc-failure handling etc.).
FossilOrigin-Name: 30a92f1132801c7582007ee625c577ea2ac31cdf
2009-11-13 10:36:20 +00:00
drh
c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
dan
fd3b22265e Use 64-bit arithmetic in the xRead() method of asyncRead. Fix for [94c04eaadb].
FossilOrigin-Name: ca3e41b0574cfd8d971c2be2114e58273a531970
2009-10-19 07:50:25 +00:00
dan
4ec56ff0ce Fix some errors in the guttman versions (disabled by default) of the algorithms in rtree.c.
FossilOrigin-Name: 64bad00b4f6fbbc3e5e75966f9c3959ad3d542ef
2009-10-05 05:40:08 +00:00
dan
17458718b2 Update an r-tree test to account for changes in the query planner.
FossilOrigin-Name: e5ce66d40bd68dc014071f7830112fa3b1d72948
2009-09-10 18:26:05 +00:00
danielk1977
9af00021a1 Mark the rtreeUpdate function as static. (CVS 6961)
FossilOrigin-Name: b6bdfdc69df4fc6cad669fd8b2cbaa9ecb95cb78
2009-08-06 18:36:47 +00:00
danielk1977
ee0484c1b5 Add the experimental API sqlite3_strnicmp(). Modify fts3 so that in terms like 'column_name:token' the column_name is interpreted in a case-insenstive fashion. Ticket #3996. (CVS 6950)
FossilOrigin-Name: 4571aa9e9142db465ae8250b0adf27e0a094331a
2009-07-28 16:44:26 +00:00
danielk1977
5368f29ac4 When the asynchronous IO backend opens a file with the EXCLUSIVE flag set, make sure only a single file-descriptor is opened (not one for reading and one for writing). This change fixes #3978. (CVS 6905)
FossilOrigin-Name: 630e669b97a81f9125d4bdc18517738b74eecdec
2009-07-18 11:52:04 +00:00
danielk1977
33c54a989e Return a meaningful error message if a keyword is used as an rtree table column name. Ticket #3970. (CVS 6902)
FossilOrigin-Name: 046efe46b50fbe928f39a0cda1b1006d486ce9f5
2009-07-17 16:54:48 +00:00
danielk1977
e932ba260e Fix a double-free that can occur when using the fts3 legacy syntax '-' operator. Add tests for the same operator. Ticket #3960. (CVS 6874)
FossilOrigin-Name: c19d419e8cf94a26d9bb6ad478e84841168a882e
2009-07-10 09:24:43 +00:00
danielk1977
1ed93e9085 Add conditional 'extern "C"' block to sqlite3async.h. Ticket #3866. (CVS 6662)
FossilOrigin-Name: e4d1b117c90dca341bfa74291c7dfc2afca38cc6
2009-05-21 04:42:19 +00:00
shane
eb4ac06f4e More cleanup, etc. to support MSVC compiles. (CVS 6582)
FossilOrigin-Name: 2cd9655e7313671f2bbe8d4a6f13246cbbf61205
2009-04-30 17:45:33 +00:00
shane
a3628d14d7 Fixed compile for MSVC; removed compiler warnings; changes for NDEBUG build; minor code tweaks. (CVS 6570)
FossilOrigin-Name: e98b12425ff036b36165dfd2002e0530ca27a677
2009-04-29 18:11:59 +00:00
danielk1977
6f050aa2bf Tests for the new asynchronous IO API. (CVS 6549)
FossilOrigin-Name: 11b2564e7159168cd0815bb9bc93688586fad1e0
2009-04-25 08:39:14 +00:00
danielk1977
4598b8e4a1 Make selecting the asynchronous IO file-locking mode a runtime operation. Still untested. (CVS 6544)
FossilOrigin-Name: 577277e84a05707b8c21aa08bc5fc314c1ac38ac
2009-04-24 10:13:05 +00:00
danielk1977
debcfd2dcb Improve comments and documentation of the asynchronous IO VFS module. (CVS 6543)
FossilOrigin-Name: 92bc6be2a86f8a68ceded2bc08fe7d6ff23b56fb
2009-04-24 09:27:16 +00:00
danielk1977
a3f065980e Move the asynchronous IO code from src/test_async.c to ext/async/. Refactor it to be a standalone module and to support windows. (CVS 6539)
FossilOrigin-Name: e71fb0fb8d83b4453c3c1e84606bf58d04926809
2009-04-23 14:58:39 +00:00
danielk1977
2fe5cb1809 Avoid fts3 crash on (MATCH '""') expressions. Ticket #3717. (CVS 6343)
FossilOrigin-Name: 03679857a320517a7b89e5214e948bce9af896a9
2009-03-12 15:43:47 +00:00
shane
be21779385 Corrected typos and misspellings. Ticket #3702. (CVS 6336)
FossilOrigin-Name: 6404afa0c515a6536fc2e878d4fb451e4dc06942
2009-03-05 04:20:31 +00:00
danielk1977
e1d3ac9cd0 Add a comment to fts3_tokenizer.h to make it clear how the xNext() method is supposed to set its output variables. Make sure the output variables of xNext() are only used if SQLITE_OK is returned. Ticket #3604. (CVS 6198)
FossilOrigin-Name: 5b3c075f96be9671d0bcffe928589b211559e835
2009-01-21 17:45:33 +00:00
drh
d162988b47 Fix typos in comments in FTS3 implementation. (CVS 6178)
FossilOrigin-Name: b0f066630c35c4947d3ecd29d32d91036da19e94
2009-01-14 18:59:41 +00:00
drh
be90df0b3e Do not display matches against
the right-hand side of a NOT operator in the output
of the FTS snippet() or offsets() functions. (CVS 6097)

FossilOrigin-Name: d44c84c0f77bd0fc4a9942177b6cae6d109b89b7
2009-01-02 01:10:42 +00:00
danielk1977
fc8c9f84ab Fix some problems in the fts3 expression parser with mismatched parenthesis. (CVS 6095)
FossilOrigin-Name: ccfe4580ac7ba9add0e69c786a9a3a43d69b7753
2009-01-01 14:06:13 +00:00
drh
b39187ae89 Additional test cases and cleanup of FTS3 parenthesis processing. (CVS 6094)
FossilOrigin-Name: afac4293000f81410d105a99956605bf7102fa62
2009-01-01 12:34:45 +00:00
danielk1977
5973e6a30b Add pseudo-random tests of the fts3 expression parser. Revise the fix in (6091). (CVS 6092)
FossilOrigin-Name: 11c2d4686197fb3f0d601651d5bbb3492af8f0dd
2009-01-01 07:08:54 +00:00
danielk1977
49b4b4d84a Fix a bug parsing "<expr> AND (abc NEAR def)" in fts3_expr.c. (CVS 6091)
FossilOrigin-Name: d1a6a2edd799d65ff88510df951e909919e35b6b
2009-01-01 04:19:51 +00:00
drh
42128b9e33 Fix the name in the documentation of the compile-time macro for
enabling FTS3 parenthesis processing. (CVS 6089)

FossilOrigin-Name: ac8258da6ecd3ea37f394dc3b48834eb57832cf4
2008-12-31 19:27:53 +00:00
drh
757b178100 Fix the FTS3 expression parser so that it works in the amalgamation when
FTS3 is disabled. (CVS 6088)

FossilOrigin-Name: 7e238e8604b9a9f786d84a47d21c6b42f1585755
2008-12-31 16:27:58 +00:00
drh
aeba020bea Fix the FTS3 module with parenthesis syntax so that it will work in
the amalgamation. (CVS 6087)

FossilOrigin-Name: c2b9891fc05ec05b270f108f61ab81b2df874e01
2008-12-31 16:01:04 +00:00
danielk1977
d597e08b23 Fix a bug in README.tokenizers. Ticket #3559. (CVS 6075)
FossilOrigin-Name: b8898d132e84888dc7c51b2f1ab67f78cc21f31b
2008-12-30 06:36:50 +00:00
danielk1977
7974759cb4 Fix a reference counting bug in rtree. Ticket #3549. (CVS 6054)
FossilOrigin-Name: bbdc0e9f2481f8d59e05ea282b615f97e09fb471
2008-12-22 15:04:32 +00:00
danielk1977
d34c03a946 Add the file ext/fts3/README.syntax, containing documentation describing the two query syntaxes now supported by fts3. (CVS 6042)
FossilOrigin-Name: ed81ad5a5d22304a4d96e778e8e9094f74c461c0
2008-12-19 11:37:38 +00:00
danielk1977
78d41832fc Fix a bug in icuOpen() in fts2. (CVS 6038)
FossilOrigin-Name: b9c722bd96b44e0fabd1564ddd982d2aabb7047c
2008-12-18 05:30:26 +00:00
danielk1977
f0f9f75443 Fix some strict-aliasing problems in fts3_expr.c. (CVS 6035)
FossilOrigin-Name: 20a4ca5d361ecbb982129171f10cccac4f5ad093
2008-12-17 15:49:51 +00:00
danielk1977
33e8903540 Modify fts3 to support a more complex expression syntax that allows parenthesis. The new syntax is not entirely backwards compatible, so is disabled by default. Use -DSQLITE_ENABLE_FTS3_PARENTHESIS to enable it. (CVS 6034)
FossilOrigin-Name: 7389b9ecb80294569845c40a23e0c832d07f7a45
2008-12-17 15:18:17 +00:00
danielk1977
777da0848d Fix a couple of memory leaks that may follow malloc failures. (CVS 5906)
FossilOrigin-Name: 4cf8a8e1bf22e1d8f7166e64328a95fe36c75033
2008-11-13 19:12:34 +00:00
drh
7ab49bfd1e Do not redefine the MIN and MAX macros if they are already defined. (CVS 5896)
FossilOrigin-Name: f41dd2053c8a297a05b47d0ef631b4d9a7db2fff
2008-11-12 15:24:27 +00:00
danielk1977
a7435e31ab Remove unused parameter from function rtreeInit() (part of the r-tree extension). (CVS 5842)
FossilOrigin-Name: 3224ea59812d0f3b5685bd92751054b81e3b681e
2008-10-25 17:10:10 +00:00
drh
8578611b95 Fix the NEAR connector in FTS3 so that it can take ranges in excess of 9.
The maximum range is now 32767. (CVS 5695)

FossilOrigin-Name: 8e9b9553115c42dae38cad0612d98d9a0c453a5c
2008-09-12 18:25:30 +00:00
danielk1977
b9134e3e84 Fix a bug in r-tree related to internal nodes with one or more dimensions of size zero. Ticket #3363. (CVS 5682)
FossilOrigin-Name: 8b600ed083d48784df4b1da1320a01bebbf233d7
2008-09-08 11:07:03 +00:00
danielk1977
1c82665040 Add header file sqliteicu.h to the ICU extension. This is analogous to the rtree.h and fts3.h headers used by other extensions to declare their entry points. Fix for ticket #3361. (CVS 5680)
FossilOrigin-Name: 79364b963b348d5433da737b4e21e97952882389
2008-09-08 08:08:09 +00:00
danielk1977
075c23af26 Begin adding support for the SQLITE_OMIT_WSD macro. Some (many) WSD variables still need wrappers added to them. (CVS 5652)
FossilOrigin-Name: 573d92abb9adb1c321ebc2fcadcf14374213b093
2008-09-01 18:34:20 +00:00
danielk1977
865d4d4290 Have the rtree module set the estimatedCost output variable. Ticket #3312. (CVS 5649)
FossilOrigin-Name: 483932c4e08901a11b7ab671073fd0a048b10d66
2008-09-01 12:46:59 +00:00
shess
7fdb522caf Backport http://www.sqlite.org/cvstrac/chngview?cn=5489 from fts3.
Re-used prepared statement from fts2 cursor. (CVS 5499)

FossilOrigin-Name: 02870ed21dae2601a656b2f30c3ca0041e9cb60f
2008-07-29 20:38:17 +00:00
shess
b5f94870c2 Re-used prepared statement from fts3 cursor. Previously, each call to
fulltextFilter() finalized any existing prepared statement and
prepared a new one.  In the case where idxNum has not changed, simply
reseting the statement suffices.  This provides an order of magnitude
speedup in incoming joins against docid. (CVS 5489)

FossilOrigin-Name: a08a5f2b1256b8a93beca5a359ccfc28d403efa3
2008-07-29 01:13:02 +00:00
shess
25192cac24 Be a bit more susicious of invalid results from the tokenizer.
Backports check-in (4514) from fts3. (CVS 5459)

FossilOrigin-Name: 311aeb9c2b75c420a37198a93e353c72e9166747
2008-07-22 23:54:50 +00:00
shess
db94e39b07 Implement optimize() function.
Backports check-in (5417) from fts3. (CVS 5458)

FossilOrigin-Name: c16900dc7603cab30f8729b25361bc88bb37ae43
2008-07-22 23:49:44 +00:00
shess
08904673c8 Delete all fts2 index data the table becomes empty.
Backports check-in (5413) from fts3. (CVS 5457)

FossilOrigin-Name: 4c98179be258319f441ae4e123cf59af77e96409
2008-07-22 23:41:26 +00:00
shess
3d373110f0 fts2 functions for testing scripts.
Backports (5340) from fts3. (CVS 5456)

FossilOrigin-Name: 4e47394be9dfbf0f9309e55eb6c6a3a517ea2006
2008-07-22 23:32:27 +00:00
shess
deca811cb5 Change prefix search from O(N*M) to O(NlogM).
Backports (4599) from fts3. (CVS 5455)

FossilOrigin-Name: 3f614453d2d7c753a5963b027fe8618b50b4f6b9
2008-07-22 23:08:40 +00:00
shess
b2822a2b5e Changes fts2 to use only sqlite3_malloc() and not system malloc.
Backports (4554) and (4555) from fts3. (CVS 5454)

FossilOrigin-Name: ecf2dec66cb979cb7d8db3b7ce5c64cab57fe2bb
2008-07-22 22:57:54 +00:00
shess
29647900e2 fts2.c buildTerms() passes -1 for nInput.
Backports (4511) from fts3. (CVS 5453)

FossilOrigin-Name: d562515e1cdd05212674516033c64b5f5668b799
2008-07-22 22:20:50 +00:00
shess
4249b3f539 Cleanup the hash functions in FTS2.
Backports (4440) from fts3. (CVS 5452)

FossilOrigin-Name: e31d2f875c13ee41742c9aaee6291662cdbbf863
2008-07-22 22:15:47 +00:00
drh
7cb53b0fdb Allow the r-tree extension to be compiled as part of the amalgamation. (CVS 5424)
FossilOrigin-Name: 5c26f63e476be3e18b2acdec5dd459da3bfceefa
2008-07-16 14:43:34 +00:00
shess
7d9ef0d0fc Implement optimize() function. This merges all segments in the fts
index into a single segment, including dropping delete cookies. (CVS 5417)

FossilOrigin-Name: b22e187bc2b38bd219dd0feba19b97279bd83089
2008-07-15 21:32:07 +00:00
shess
c2c66a030d Delete all fts3 index data the table becomes empty. Previously,
deleting all rows from an fts3 table would leave a bunch of index data
describing the terms of the original data, plus deletions of those
terms, perhaps with some amount of it merged together so the deletions
knocked out the originals.  Even when all rows were deleted that
original data would hang out, though eventually it would mostly be
overwritten if new data contained the same set of terms. (CVS 5413)

FossilOrigin-Name: 8b872e426091d9ef108e52dbec0d968ed7452907
2008-07-14 20:43:15 +00:00
danielk1977
3ddb5a5104 Have the rtree extension publish two virtual table types: "rtree" and "rtree_i32". rtree_i32 stores coordinate data as 32-bit signed integers. rtree uses 32-bit real (floating point) values. (CVS 5410)
FossilOrigin-Name: c060a9a6beca455bdceee9ce6ca71a7262f98a5f
2008-07-14 15:37:00 +00:00
shess
6c106e3f3b fts3 functions for testing scripts. These are a first step towards
being able to write test script which verify that fts3 is internally
building indices in the expected way.  Both new functions are only
defined if fts3.c is compiled with SQLITE_TEST defined, as when
building testfixture.  These functions are not intended to be part of
the exposed fts3 API.

dump_terms() generates a TEXT result of all the terms in the index (or
a specified segment), sorted and joined with spaces.

dump_doclist() generates a TEXT representation of the doclist
associated with a given term in the index (or a specified segment). (CVS 5340)

FossilOrigin-Name: a48e3d95f7a656285e959cef595cbe6d53428ad9
2008-07-03 19:53:21 +00:00
danielk1977
8cf6c554c0 Fix a bug causing the pager-cache size to be reset to its default value whenever the database schema was reloaded. (CVS 5283)
FossilOrigin-Name: 6dbe67da5cb0141e011b4fdcc3964a20f68be843
2008-06-23 16:53:46 +00:00
danielk1977
b13dee9900 Run (a subset of) the rtree tests from quick.test. (CVS 5282)
FossilOrigin-Name: e872c78c72eb5976e72123485692a76409bd857f
2008-06-23 15:55:52 +00:00
drh
0d287cf775 Fix another typo in the rtree README file. (CVS 5187)
FossilOrigin-Name: 9ab87b7b0d0195787f1527b5be1475fb89330f08
2008-06-04 15:09:16 +00:00
drh
72e87f44d0 Fix a bug in the R-Tree documentation. (CVS 5186)
FossilOrigin-Name: bb445a4b1fe43d7b3e8546a6510f4e3c3ecb500b
2008-06-04 14:20:09 +00:00
drh
0224d26d37 Allow the SQLITE_MAX_EXPR_DEPTH compile-time parameter to be set to 0 in
order to disable expression depth checking.  Ticket #3143. (CVS 5166)

FossilOrigin-Name: 5ceef40e397fc535173996404345b93f695e8cac
2008-05-28 13:49:34 +00:00
drh
4b4f780188 Fix a bug in rtree that occurs when too many constraints are passed
in on a query. (CVS 5162)

FossilOrigin-Name: 54b84a3ddba9d27814c2f613dd197f691ac549a4
2008-05-27 00:06:02 +00:00
drh
9f86ad2354 Use %w instead of %q when constructing shadow table names for rtree. (CVS 5161)
FossilOrigin-Name: 78f4ba974d9b768b62391d8cd2ed407d49584cb8
2008-05-26 20:49:02 +00:00
drh
58f1c8b773 Update the amalgamation builder to incorporate the RTREE extension. (CVS 5160)
FossilOrigin-Name: aa8eba3360c31182f5238e96b83a382374f40fab
2008-05-26 20:19:25 +00:00
danielk1977
ebaecc148f Import 'rtree' extension. (CVS 5159)
FossilOrigin-Name: b104dcd6adadbd3fe15a348fe9d4d290119e139e
2008-05-26 18:41:54 +00:00
drh
8a29dfdea0 Remove all instances of sprintf() from the FTS modules. Ticket #3049. (CVS 4996)
FossilOrigin-Name: 062bf5d44d53ae0ee2bf96eddcc8de09157aa789
2008-04-12 13:06:09 +00:00
drh
dd95535f20 Minor fixes to FTS3 so that it works better when appended to the end
of the amalgamation. (CVS 4769)

FossilOrigin-Name: 62ede6699d8f116921a5a0baddca5e7e63740cd3
2008-02-01 15:34:09 +00:00
drh
820a90694e Version number to 3.5.5. Include FTS3 in the amalgamation by default
(but disabled unless compiled with -DSQLITE_ENABLE_FTS3).  Fix a memory
allocation problem. (CVS 4757)

FossilOrigin-Name: 72411043e60d5358d5a7adf566d662d65d3b3336
2008-01-31 13:35:48 +00:00
drh
85b623f2f9 Change all instances of "it's" in comments to either "its" or "it is",
as appropriate, in case the comments are ever again read by a pedantic
grammarian.  Ticket #2840. (CVS 4629)

FossilOrigin-Name: 4e91a267febda572e7239f0f1cc66b3102558c36
2007-12-13 21:54:09 +00:00
shess
b6a75606ed Change prefix search from O(N*M) to O(NlogM). The previous code
linearly merged the doclists, so as the accumulated list got large,
things got slow (the M term, a fucntion of the number of documents in
the index).  This change does pairwise merges until a single doclist
remains.  A test search of 't*' against a database of RFC text
improves from 1m16s to 4.75s. (CVS 4599)

FossilOrigin-Name: feef1b15d645d638b4a05742f214b0445fa7e176
2007-12-07 23:47:53 +00:00
drh
8255feca02 The FTS3 amalgamation can now be appended to the SQLite amalgamation to
generate a single source file that contains both components. (CVS 4558)

FossilOrigin-Name: 0fc61f99b54bd269fcc011f448b9b971e902cb01
2007-11-24 00:41:52 +00:00
drh
a6f46e991e Do not require SQLITE_ENABLE_BROKEN_FTS2 if FTS2 is not enabled.
The same for FTS1.  Ticket #2777. (CVS 4556)

FossilOrigin-Name: f94cdcfd1171fd110ed9cd4c47f1fb5fa7e99ca9
2007-11-23 18:06:23 +00:00
drh
ac320cc14a Add a #include of sqlite3.h to fts3_hash.c. Tickets #2762 and #2777. (CVS 4555)
FossilOrigin-Name: c8485eb8bc62c810ec9f73e103468c57116fd94c
2007-11-23 18:01:07 +00:00
drh
613a0fe455 Changes fts3 to use only sqlite3_malloc() and not system malloc.
Ticket #2762. (CVS 4554)

FossilOrigin-Name: 460af6bb668094c99a1d4dc1540b44b6d1d036b6
2007-11-23 17:31:17 +00:00
shess
cd7274ceb0 Don't do anything when input doclists are both empty. Ticket #2774 (CVS 4546)
FossilOrigin-Name: 75cb46f82a6a95dbe9e279dede299bafa2e91cae
2007-11-16 00:23:07 +00:00
shess
adafd5747f Be a bit more susicious of invalid results from the tokenizer. (CVS 4514)
FossilOrigin-Name: deb8f56d3adea0025d28b8effabec7c7b7fe3026
2007-10-24 23:24:22 +00:00
shess
b6d78dc7bb fts3.c buildTerms() passes -1 for nInput. (CVS 4511)
FossilOrigin-Name: e87c883a1235ac47ee340a31051dcd5deb369d4e
2007-10-24 21:52:37 +00:00
danielk1977
1c1764ae66 Add the NEAR operator to fts3. (CVS 4502)
FossilOrigin-Name: aef7720e0bb49d52332ddebe6f698feb926ef7d7
2007-10-22 18:02:20 +00:00
drh
8a07c7a414 Cleanup the hash functions in FTS3. (CVS 4440)
FossilOrigin-Name: ac645c8f30aac0d98fc481260084c9bd3975a845
2007-09-20 12:53:27 +00:00
shess
961303c1e7 Drop the forced error from fts3.c and add forced errors to fts2.c and
fts1.c. (CVS 4427)

FossilOrigin-Name: fec6567a0f8a868cda9bba2a473491dfb17b6c88
2007-09-13 18:16:08 +00:00
shess
d83ae45639 Add an implicit (HIDDEN) docid column. This works as an alias to
rowid, similar to how things work in SQLite tables with INTEGER
PRIMARY KEY.  Add tests to verify operation. (CVS 4426)

FossilOrigin-Name: c8d2345200f9ece1af712543982097d0b6f348c7
2007-09-13 18:14:49 +00:00
shess
0ec85ae216 Mark the table-named column HIDDEN. Add tests to make sure it's
working as expected. (CVS 4425)

FossilOrigin-Name: ca669eaf1b4af441741129bee4af02f32a7c74b8
2007-09-13 18:12:09 +00:00
shess
999cc5d7e8 Fix memory leak reported by an fts1 user. Was losing a doclist on a
query error. (CVS 4347)

FossilOrigin-Name: eee025024972852990e704253d1443c1cefb376c
2007-08-30 19:56:37 +00:00
shess
27a770e044 Fix memory leak of InteriorReader.term. Comes up when doing queries
against large segments. (CVS 4315)

FossilOrigin-Name: 6c617bd89fc57881a2a308a6360e8ebb42835d46
2007-08-28 20:36:53 +00:00
shess
bae37537b0 Make comments and variable naming more consistent WRT rowid versus
docid/blockid.  This should have no code impact. (CVS 4281)

FossilOrigin-Name: 76f1e18ebc25d692f122784e87d202992c4cfed2
2007-08-23 20:28:49 +00:00
shess
6beeb0329a Fix fts3 to not have the VACUUM bug from fts2. %_content.docid is an
alias to fix the rowid for documents, %_segments.blockid is an alias
to fix the rowid for segment blocks.  Unit test for the problem. (CVS 4280)

FossilOrigin-Name: 6eb2d74a8cfce322930f05c97d4ec255f3711efb
2007-08-23 20:23:37 +00:00
shess
acce22f5c7 Copy fts2 to fts3, renaming, and replacing references to fts2 with
fts3, including capitalization variants. (CVS 4249)

FossilOrigin-Name: 216c91d2fc49792d9ff53596746f1162f5b7f8d4
2007-08-20 17:37:02 +00:00
shess
9fa502205d Convert fts2 to use sqlite3_prepare_v2() to prevent certain logic
errors around SQLITE_SCHEMA handling.  This also allows
sql_step_statement() and sql_step_leaf_statement() to be replaced with
sqlite3_step().

Also fix a logic error in flushPendingTerms() which was clearing the
term table in case of error.  This was wrong in the face of
SQLITE_SCHEMA.  Even though the change to sqlite3_prepare_v2() should
cause us not to see SQLITE_SCHEMA any longer, it was still a logic
error... (CVS 4205)

FossilOrigin-Name: 16730cb137eaf576b87cdc17913564c9c5c0ed82
2007-08-10 23:47:03 +00:00
drh
e6e4d6bb1a Fix some compiler warnings. (CVS 4196)
FossilOrigin-Name: 6cc15409ad6baefbe6e2214a4ac1cb3a0433f922
2007-08-05 23:52:05 +00:00
rse
e21733baa5 Fix ticket #2439: the FTS1 and FTS2 extensions use the non-standard,
unportable and highly deprecated <malloc.h> header on all platforms
except Apple Mac OS X. The <malloc.h> actually is never required on
any OS with an at least partly POSIX-conforming API as the malloc(3) &
friends functions officially live in <stdlib.h> since over 10 years.
Under some platform like FreeBSD the inclusion of <malloc.h> since a few
years even causes an "#error" and this way a build failure. So, just get
rid of the bad <malloc.h> usage in FTS1 and FTS2 extensions at all and
stick with <stdlib.h> there only. (CVS 4191)

FossilOrigin-Name: 3f9a666143a8aafa0b1a5d56ec68f69f2b3d6a21
2007-07-30 18:55:36 +00:00
shess
a2d04e9a0f Implement xRename() for fts1 so that it is possible to rename fts1 tables.
See http://www.sqlite.org/cvstrac/chngview?cn=4143 (CVS 4184)

FossilOrigin-Name: febf75f022b9414fc456ddf274d301f95d61e1b8
2007-07-25 00:56:09 +00:00
shess
443ecd036d Replicates http://www.sqlite.org/cvstrac/chngview?cn=4151 which
modified fts2:

Modify handling of SQLITE_SCHEMA in fts2 code. An SQLITE_SCHEMA error
may cause SQLite to reload the internal schema, deleting and
recreating v-table objects. So the sqlite3_vtab structure can be
deleted out from under a v-table implementation. (CVS 4183)

FossilOrigin-Name: f9020cffda02923ef45979bb447ec2e232086ad5
2007-07-25 00:38:05 +00:00
shess
f6e3624cfc Sorry, previous check-in included a last-minute "Did it really work?"
change :-). (CVS 4182)

FossilOrigin-Name: 5db25e369a1a4b5a4d87947abdbf25f96fe64807
2007-07-25 00:27:59 +00:00
shess
9f8a4b43ef Apply change 4095 to fts1. Fix snippet generation when the left-most
column of an fts table is used in the MATCH clause. Fix for ticket
#2429. (CVS 4181)

FossilOrigin-Name: c2ba3cc0f7ac9f5dfe5ffb554f9a1cd96b28335a
2007-07-25 00:25:20 +00:00
danielk1977
ab9749ebb9 Modify handling of SQLITE_SCHEMA in fts2 code. An SQLITE_SCHEMA error may cause SQLite to reload the internal schema, deleting and recreating v-table objects. So the sqlite3_vtab structure can be deleted out from under a v-table implementation. (CVS 4151)
FossilOrigin-Name: dee1a0fd28e8341af6523ab0c5628b671d7d2811
2007-07-02 10:16:49 +00:00
danielk1977
c033b64276 Implement xRename() for fts2 so that it is possible to rename fts2 tables. (CVS 4143)
FossilOrigin-Name: 488474fde753c5a7a14ed8f2fad7f16efd236491
2007-06-27 16:26:07 +00:00
danielk1977
9ff802627a Reorganize comments in fts2_tokenizer.h. No code changes. (CVS 4132)
FossilOrigin-Name: b331e30395e9fc90abe40ab802972a67648cf48e
2007-06-26 12:54:07 +00:00
danielk1977
08ada518ff Remove the unused EXTSRC variable from the non-configure makefile. (CVS 4129)
FossilOrigin-Name: bbdcf372c6f2144a62fba742b3f4bd6b2fe58593
2007-06-26 10:56:40 +00:00
danielk1977
4877ef2aae Fix an unitialized variable in fts2. (CVS 4128)
FossilOrigin-Name: c349cf942534357955f80fc2aa8c96206af97b78
2007-06-26 10:55:01 +00:00
danielk1977
576d3db541 Modify the non-configure build system to make it easier to build the library with the fts2 or icu extensions linked in. (CVS 4121)
FossilOrigin-Name: 02b23c4394da7efb82e9318146f10818b0f68b1f
2007-06-25 14:28:48 +00:00
drh
397aa141ed Put #ifdefs in fts2_tokenizer so that the build works even when FTS2
is omitted.  Add the SQLite blessing to the header comments on all FTS2
source files. (CVS 4120)

FossilOrigin-Name: c795e6fd8f01bcbc1967062632c13d4952abf4d8
2007-06-25 13:50:03 +00:00
drh
5665b3ea44 All the use of MySQL-style quoting in the FTS modules. Ticket #2446. (CVS 4119)
FossilOrigin-Name: 3be2a6d1c342454d93b05c38f3d9a960ab15dae2
2007-06-25 12:49:05 +00:00
danielk1977
46760820a1 Add a test that calls fts2_tokenizer() with an argument set via C code. (CVS 4118)
FossilOrigin-Name: fbcf2d75cd2b88d175c122477aa483f0771870e5
2007-06-25 12:05:40 +00:00
danielk1977
f86643b32f Add some tests for the fts2 icu tokenizer. (CVS 4117)
FossilOrigin-Name: b79ced3e0a26b0db13613073c847c2d2ba7e174e
2007-06-25 11:24:38 +00:00
danielk1977
24e1afa222 Add some documentation for user-defined fts2 tokenizers. (CVS 4116)
FossilOrigin-Name: 5a9eee86587219a68655d548864d129edec969ae
2007-06-25 09:52:31 +00:00
danielk1977
832a58a68c Extend fts2 so that user defined tokenizers may be added. Add a tokenizer that uses the ICU library if available. Documentation and tests to come. (CVS 4108)
FossilOrigin-Name: 68677e420c744b39ea9d7399819e0f376748886d
2007-06-22 15:21:15 +00:00
danielk1977
86889fc3c6 Fix snippet generation when the left-most column of an fts2 table is used in the MATCH clause. Fix for ticket #2429. (CVS 4095)
FossilOrigin-Name: fec56ad2ede53e3e202d9ad869a059eeb315796f
2007-06-20 06:23:54 +00:00
shess
401b80656d Minor comment edits from my prefix development client. No code changes. (CVS 4058)
FossilOrigin-Name: 6953cd0935b5526756ab745545420e40adc3c56d
2007-06-12 18:20:04 +00:00
danielk1977
b39fa65289 Add a README.txt file for the ICU extension. (CVS 4055)
FossilOrigin-Name: 7b6927829f18d39052e67eebca4275e7aa496035
2007-06-11 08:00:00 +00:00
shess
8a7de08a8b Fix overzealous fts2 assertions WRT rowid 0 or lower. Only check that
docids are ascending if there was a prior docid set for the doclist,
ignore the initial docid of 0. (CVS 4026)

FossilOrigin-Name: ed3a131f1d3fe51d1e79bdfe1bfafa55f825afa9
2007-05-21 21:59:18 +00:00
danielk1977
7de68a097e Add a version of the LIKE operator to the icu extension. Requires optimisation. (CVS 3939)
FossilOrigin-Name: 3e96105c1f084a4ab4dad4de6f4759e43fc497f7
2007-05-07 16:58:02 +00:00
danielk1977
2559136971 Add interface to configure SQLite to use ICU collation functions. (CVS 3936)
FossilOrigin-Name: b29a81b4fbb926fa09186340342848b9fe589033
2007-05-07 11:53:13 +00:00
danielk1977
a9808b31a8 Add the experimental create_collation_x() api. (CVS 3934)
FossilOrigin-Name: ff49d48f2f025898a0f4ace1fc227e1d367ea89f
2007-05-07 09:32:45 +00:00
danielk1977
83852acc44 Add the start of the ICU extension. (CVS 3931)
FossilOrigin-Name: f473e8526770b6a332dfde3e1fd1ddf8df493e9a
2007-05-06 16:04:11 +00:00
shess
290283fe69 Enable prefix-search in query-parsing and snippet generation. If the
character immediately after the end of a term is '*', that term is
marked for prefix matching.  Modify term comparison in
snippetOffsetsOfColumn() to respect isPrefix.  fts2n.test runs prefix
searching through some obvious test cases. (CVS 3893)

FossilOrigin-Name: 7c4c65924035d9f260f6b64eb92c5c6cf6c04b7b
2007-05-01 18:25:52 +00:00
shess
cc3e986643 Modify loadSegmentLeavesInt() to correctly handle prefix searching.
The new function docListUnion() is used to accumulate a union of the
hits for the matching terms, which will be merged across segments
using docListMerge(). (CVS 3891)

FossilOrigin-Name: 72c796307338c2751a91c30f6fb16989afbf3816
2007-05-01 17:14:59 +00:00
shess
0b6212090f Propagate prefix flag through implementation of doclist query code.
Also implement correct prefix-handling for traversal of interior nodes
of segment tree.  A given prefix can span multiple children of an
interior node, and from there the branches need to be followed in
parallel. (CVS 3889)

FossilOrigin-Name: cae844a01a1d87ffb00bba8b4e7b62a92e633aa9
2007-04-30 22:09:36 +00:00
shess
f055154108 Lift docListMerge() call out of loadSegmentLeavesInt() for prefix
search.  Doclists from multiple prefix matches will need a union merge
function, which will have to logically happen across a segment before
doclists are merged between segments. (CVS 3887)

FossilOrigin-Name: 7ddb82668906e33e2d6a796f2da1795032e036d5
2007-04-30 17:52:51 +00:00
shess
8ffcadb57e Break interior-node and leaf-node readers apart in loadSegment().
Previously, the code looped until the block was a leaf node as
indicated by a leading NUL.  Now the code loops until it finds a block
in the range of leaf nodes for this segment, then reads it using
LeavesReader.  This will make it easier to traverse a range of leaves
when doing a prefix search. (CVS 3884)

FossilOrigin-Name: 9466367d65f43d58020e709428268dc2ff98aa35
2007-04-27 22:02:57 +00:00
shess
ac7b2dd518 Lift code to traverse interior nodes out of loadSegment().
Refactoring towards prefix searching. (CVS 3882)

FossilOrigin-Name: 25935db73877c0cb132acb30c2fed2544d0e5e32
2007-04-27 21:24:18 +00:00
shess
1c7ebb0805 Refactor fts2 loadSegmentLeaf() in preparation for prefix-searching.
Prefix-searching will want to accumulate data across multiple leaves
in the segment, using LeavesReader instead of LeafReader is the first
step in that direction. (CVS 3881)

FossilOrigin-Name: 22ffdae4b6f3d0ea584dafa5268af7aa6fdcdc6e
2007-04-27 21:01:59 +00:00
drh
6ed34c59c5 Add the ability to turn the FTS2 module into an amalgamation. (CVS 3864)
FossilOrigin-Name: 94374654ccabb391f5dcccfc88176ca677c5804e
2007-04-21 16:37:48 +00:00
shess
3b2f10cd8f Fix bug in fts2 handling of OR queries. When one doclist ends before
the other, the code potentially tries to read past the end of the
doclist.  http://www.sqlite.org/cvstrac/tktview?tn=2309 (CVS 3862)

FossilOrigin-Name: dfac6082e8ffc52a85c4906107a7fc0e1aa9df82
2007-04-19 18:36:32 +00:00