SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

100 check-ins occurring around 944d5f812004e2dc.

2006-10-31
18:08
Make the command-line shell ".dump" command more resilient in the face of database corruption. (CVS 3496) (check-in: ebd44f0b user: drh tags: trunk)
2006-10-30
13:37
Changes to support non-ASCII characters in win95 filenames. Ticket #2047. (CVS 3495) (check-in: 9fa3ae58 user: drh tags: trunk)
2006-10-28
00:28
Enhance the optimizer so that IS NULL can use an available index. (CVS 3494) (check-in: 64762a9d user: drh tags: trunk)
2006-10-27
14:21
Fix the ".dump" command in the command-line shell so that it shows TRIGGERs and VIEWs. Ticket #2044. (CVS 3493) (check-in: 58171a41 user: drh tags: trunk)
14:06
Changes directed toward optimizing IS NULL terms in WHERE clauses. (CVS 3492) (check-in: 4d336e9e user: drh tags: trunk)
2006-10-26
18:15
Bring CVS output into more commonly accepted practice. Tickets #2030, #1573. Add command-line options -bail and ".bail" commands. Default behavior is to continue after encountering an error. Ticket #2045. (CVS 3491) (check-in: 517712d6 user: drh tags: trunk)
14:25
Command-line shell enhancements. Bail out when errors are seen in non-interactive mode. Override isatty() using -interactive or -batch command-line options. Report line number in error messages. Tickets #2009, #2045. (CVS 3490) (check-in: 3baa04cf user: drh tags: trunk)
00:41
Empty queries should get no results. My recent change ( http://www.sqlite.org/cvstrac/chngview?cn=3486 ) broke test fts2a-5.3. This change should make the expected result more obvious. (CVS 3489) (check-in: cde383eb user: shess tags: trunk)
00:04
Make memset() uses less error-prone. http://www.sqlite.org/cvstrac/tktview?tn=2036,35 describes some cases where we were passing memset() a length which was the sizeof a pointer, rather than the structure pointed to. Instead, wrap this idiom up in CLEAR() and SCRAMBLE() macros. (CVS 3488) (check-in: 5878add0 user: shess tags: trunk)
2006-10-25
23:22
Remove unreferenced local variable. (CVS 3487) (check-in: 2d3b2219 user: shess tags: trunk)
21:00
Replace the DocList and DocListReader structures. The new structures distinguish reading from a static buffer from writing to a dynamic buffer. This allows n-way doclist merging, and in-place merging of segment leaf nodes, which together cut segment merge times in half. (CVS 3486) (check-in: af5bfb98 user: shess tags: trunk)
20:27
Test to force edge cases in query logic. Basically, exercise code to handle lack of hits correctly. (CVS 3485) (check-in: 2cb59033 user: shess tags: trunk)
05:21
Don't store empty segments. When inserting empty strings, the code was writing out a segment made up of a single leaf node containing the \0 header. LeafReader assumed that leaf nodes always contained at least one term, so assertions would fail.

While it would be possible to support reading and merging empty segments, there's no reason to do so. While this change could have been done in writeZeroSegment(), I put it in leafWriterFlush() so that it would work right if segmentMerge() created an empty segment, which could happen with future changes to how deleted documents are handled. (CVS 3484) (check-in: fed79bee user: shess tags: trunk)

2006-10-24
11:26
Fix a bad variable reference. The reference is actually in unreachable code and is therefore harmless. The fix is to remove the code. (CVS 3483) (check-in: 46b91807 user: drh tags: version_2)
2006-10-19
23:36
dup fts1 tests and edit for fts2. fts1porter.test omitted because it depends on being able to poke through to %_term table. (CVS 3482) (check-in: 2806c341 user: shess tags: trunk)
23:28
Add tests for delete and update in fts1. (CVS 3481) (check-in: b01c4371 user: shess tags: trunk)
20:27
fts2 support for testing. These are a prelude to adding some test scripts. (CVS 3480) (check-in: 004ad194 user: shess tags: trunk)
01:58
When converting UTF8 or UTF16 strings, change overlong strings and other illegal codes to 0xFFFD. Ticket #2029. (CVS 3479) (check-in: 0c6736df user: drh tags: trunk)
2006-10-18
23:26
Fix a problems that arise if malloc() fails while compiling SELECT statements within a TRIGGER. (CVS 3478) (check-in: ee4894b4 user: drh tags: trunk)
2006-10-13
15:34
Make sure the names of all expressions in compound SELECT statements used as subqueries are correctly resolved. Ticket #2018. (CVS 3477) (check-in: b886eaa3 user: drh tags: trunk)
12:25
Avoid expanding %d contained in the action of a lemon parser rule. Ticket #1063. This is a fix for lemon only. It does not effect SQLite. (CVS 3476) (check-in: 81daedcf user: drh tags: trunk)
11:55
Removing debugging printf from the porter stemmer code. Ticket #2016. (CVS 3475) (check-in: 7a08c627 user: drh tags: trunk)
2006-10-12
23:15
Convert fts2 to store data in a way which allows for much faster updates. Groups of documents form segments which are encoded in a btree layered over a table of blocks, with various tricks to make merges fast. This performs 20x-25x faster than fts1 when loading the Enron corpus, and is only slightly slower for queries. (CVS 3474) (check-in: 85272b2f user: shess tags: trunk)
2006-10-11
17:19
Bug fix: named local variable lockStyle as lockingStyle in SQLITE_ENABLE_LOCKING_STYLE block in allocateUnixFile (CVS 3473) (check-in: aa0b96c3 user: aswift tags: trunk)
2006-10-10
23:22
Fix leaky symbols. With this change, fts1 and fts2 can both be statically linked. (CVS 3472) (check-in: 5e8bbb85 user: shess tags: trunk)
17:37
Copy fts1/ to fts2/, changing reference from fts1 to fts2. For future reference, the source versions copied were:

README.txt r1.1 fts1.c r1.37 fts1.h r1.2 fts1_hash.c r1.1 fts1_hash.h r1.1 fts1_porter.c r1.1 fts1_tokenizer.h r1.4 fts1_tokenizer1.c r1.6 (CVS 3471) (check-in: d0d1e7cd user: shess tags: trunk)

13:07
VACUUM now uses a temporary file in the official TEMP folder instead of a file in the same directory as the original database. (CVS 3470) (check-in: b743429d user: drh tags: trunk)
2006-10-09
00:38
Version 3.3.8 (CVS 3469) (check-in: 0658bb9e user: drh tags: trunk)
2006-10-08
18:56
Website changes for version 3.3.8. Remove a C++-ism from test8.c. (CVS 3468) (check-in: 465ce5b2 user: drh tags: trunk)
2006-10-05
21:48
Fix incorrect doclist initialization in term_select_all(). docListRestrictColumn() generates a DL_POSITIONS doclist, which means that after the first doclist is processed, the second doclist is initialized as DL_POSITIONS, but with DL_POSITIONS_OFFSETS data. (Note that DL_DEFAULT is now DL_POSITIONS, which masks this bug.) (CVS 3467) (check-in: 144e3f11 user: shess tags: trunk)
11:43
Fix another UTF conversion problem on x64. Ticket #2008. (CVS 3466) (check-in: d16523e5 user: drh tags: trunk)
2006-10-04
17:35
The snippet generator adds ellipsis between text from different columns. (CVS 3465) (check-in: 6cf1fb9f user: drh tags: trunk)
15:23
Fix UTF conversions for -O2 on gcc 4.1.1. Ticket #2008. (CVS 3464) (check-in: 86a08bb7 user: drh tags: trunk)
11:55
Tests cases automatically remove many of their temporary files. (CVS 3463) (check-in: eef0ec0d user: drh tags: trunk)
2006-10-03
19:37
Make DL_POSITION the default mode in FTS1. Remove the need to compile with SQLITE_CORE when SQLITE_ENABLE_FTS1 is used. (CVS 3462) (check-in: df1a4b48 user: drh tags: trunk)
19:12
Modify the makefile(s) to know about the FTS1 module - however FTS1 is turned off by default. Bump the version number to 3.3.8. (CVS 3461) (check-in: 288ff637 user: drh tags: trunk)
19:05
Report the error SQLITE_CORRUPT instead of SQLITE_IOERR if unable to rollback a hot journal that was damaged (for example) by filesystem corruption following a power failure. (CVS 3460) (check-in: 70501e4e user: drh tags: trunk)
17:40
Add the OS-X locking style patches to os_unix.c. Disabled by default. (CVS 3459) (check-in: f4103dea user: drh tags: trunk)
12:08
Fix sqlite3_analyzer so that it works when compiled against Tcl8.5. (CVS 3458) (check-in: e774adce user: drh tags: trunk)
12:04
Fix sqlite3_analyzer so that it works on databases containing virtual tables. (CVS 3457) (check-in: 47c8567f user: drh tags: trunk)
11:42
Add the option to omit offset information from posting lists in FTS1. (CVS 3456) (check-in: fdcea7b1 user: drh tags: trunk)
2006-10-01
20:41
Another typo in the Porter stemmer check-in. (CVS 3455) (check-in: 6696bda1 user: drh tags: trunk)
18:59
Typo in previous check-in. (CVS 3454) (check-in: a7350bf8 user: drh tags: trunk)
18:58
Remove one non-working test case fromthe Porter stemmer tests and add an acknowledgement for the source of the test data (Martin Porter himself.) (CVS 3453) (check-in: 1a2df2a6 user: drh tags: trunk)
18:41
Add a Porter stemmer option to the FTS1 module. (CVS 3452) (check-in: 936b06aa user: drh tags: trunk)
2006-09-29
14:01
Make sure memory does not leak when patching up column names so that they are unique in a join or view. Tickets #1952 and #2002. (CVS 3451) (check-in: fcde6391 user: drh tags: trunk)
2006-09-28
19:43
Fix a bug in the handling of the OR operator in FTS1. Test cases added to prevent a repeat. (CVS 3450) (check-in: 8cdf1d6a user: drh tags: trunk)
18:58
More snippet generator improvements and test cases. (CVS 3449) (check-in: 0934d220 user: drh tags: trunk)
18:37
Bug fix in the FTS1 snippet generator. Improvements in the way the snippet generator handles whitespace. (CVS 3448) (check-in: d3f4ae82 user: drh tags: trunk)
11:41
Avoid segfaults when inserted NULL values into FTS1. (CVS 3447) (check-in: 165645d3 user: drh tags: trunk)
2006-09-26
00:37
Fix to the previous check-in. (CVS 3446) (check-in: 944d5f81 user: drh tags: trunk)
00:34
Performance improvement and bug fix in sqlite3WinDelete(). (CVS 3445) (check-in: 46ac1ac2 user: drh tags: trunk)
2006-09-25
18:05
CVS malfunctioned on the previous check-in. Make sure the revision to date.c was received. Ticket #1991. (CVS 3444) (check-in: 433dac1f user: drh tags: trunk)
18:03
Fix a roundoff error in the %f converter of strftime(). Ticket #1991. (CVS 3442) (check-in: 51b9c755 user: drh tags: trunk)
18:01
Add a pragma for activating proprietary extensions. (CVS 3441) (check-in: c63d34ce user: drh tags: trunk)
18:01
Fix a round-off problem in the %f conversion of strftime(). Ticket #1991. (CVS 3443) (check-in: bf460840 user: drh tags: trunk)
13:48
Bug fix in pragma table_info(). (CVS 3440) (check-in: c037403b user: drh tags: trunk)
13:09
Remove legacy cruft from shell.c. (CVS 3439) (check-in: 815d8f84 user: drh tags: trunk)
2006-09-23
21:44
Fix a bug in the handling of I/O errors introduced by the addition of extended error codes in check-in (3422). (CVS 3438) (check-in: 20d7b294 user: drh tags: trunk)
20:46
Fix documentation typo. Ticket #1986 (CVS 3437) (check-in: 58c32ce3 user: drh tags: trunk)
20:36
Be sure to ignore PRAGMA encoding pragmas if the encoding has already been set for a database. Ticket #1987. This patch also includes some cleanup of the schema parser and initialization logic. (CVS 3436) (check-in: dc797bf4 user: drh tags: trunk)
2006-09-22
23:38
Fix a build problem around sqlite3_overload_function. Only affects so/dll builds. (CVS 3435) (check-in: 791d7093 user: shess tags: trunk)
00:06
Implemented UPDATE for full-text tables.

We handle an UPDATE to a row by performing an UPDATE on the content table and by building new position lists for each term which appears in either the old or new versions of the row. We write these position lists all at once; this is presumably more efficient than a delete followed by an insert (which would first write empty position lists, then new position lists). (CVS 3434) (check-in: 757fa224 user: adamd tags: trunk)

2006-09-21
20:56
When gathering a doclist for querying, don't discard empty position lists until the end; this allows empty position lists to override non-empty lists encountered later in the gathering process. This fixes #1982, which was caused by the fact that for all-column queries we weren't discarding empty position lists at all. (CVS 3433) (check-in: 111ca616 user: adamd tags: trunk)
11:02
Be more aggressive with the SQLITE_OMIT_VACUUM macro. Saves about 150 bytes of code space. (CVS 3432) (check-in: 7e618db4 user: drh tags: trunk)
02:03
Implementation of the snippet() function for FTS1. Includes a few simple test cases but more testing is needed. (CVS 3431) (check-in: c7ee60d0 user: drh tags: trunk)
2006-09-18
21:14
Fixed a build problem in sqlite3_extension_init(). (CVS 3430) (check-in: bb2e1871 user: adamd tags: trunk)
20:24
Convert all names to lower case before sending them to the xFindFunction method of a virtual table. In FTS1, use strcmp instead of strcasecmp. Ticket #1981. (CVS 3429) (check-in: cd4e1de8 user: drh tags: trunk)
20:24
Convert all names to lower case before sending them to the xFindFunction method of a virtual table. In FTS1, use strcmp instead of strcasecmp. Ticket #1981. (CVS 3428) (check-in: efa8fb32 user: drh tags: trunk)
02:12
Modify FTS1 so that the "magic" column has the same name as the virtual table. Offsets are retrieved using a special "offsets" function whose first argument is the magic column. Snippets will ultimately be retrieved in the same way. (CVS 3427) (check-in: 5e35dc1f user: drh tags: trunk)
2006-09-16
21:45
Add the sqlite3_overload_function() API - part of the virtual table interface. (CVS 3426) (check-in: aa7728f9 user: drh tags: trunk)
2006-09-15
16:58
Add documentation for the sqlite3_extended_result_codes() API. (CVS 3425) (check-in: a6b3f6be user: drh tags: trunk)
16:09
Fix an initialization problem in FTS1. Ticket #1977. (CVS 3424) (check-in: 5a18dd88 user: drh tags: trunk)
12:29
Bug fix and better testing of the extended result codes. (CVS 3423) (check-in: 78ae74db user: drh tags: trunk)
07:28
Add support for extended result codes - additional result information carried in the higher bits of the integer return codes. This must be enabled using the sqlite3_extended_result_code() API. Only a few extra result codes are currently defined. (CVS 3422) (check-in: ba579ddc user: drh tags: trunk)
2006-09-14
21:08
New FTS1 test data based on enron emails. (CVS 3421) (check-in: 01651a32 user: drh tags: trunk)
18:25
Remove file containing real email addresses. Ticket #1978. (CVS 3420) (check-in: 373a575f user: drh tags: trunk)
16:57
Minor build fixes. (CVS 3419) (check-in: 3564b07c user: adamd tags: trunk)
13:47
Enhanced I/O error simulation. (CVS 3418) (check-in: 86931854 user: drh tags: trunk)
01:17
The FTS1 tables have a new automatic column named "offset" that returns a string containing byte offset information for all matching terms. Also added a large test case based on SQLite mailing list entries. (CVS 3417) (check-in: f25cfa1a user: drh tags: trunk)
2006-09-13
20:22
Modify the ".dump" command in the command-line shell so that it works with virtual tables. (CVS 3416) (check-in: afd40184 user: drh tags: trunk)
19:21
Remove unused malloc failure test. (Ticket #1976) Also include fixes for other problems discovered while investigating ticket #1976. (CVS 3415) (check-in: f4ab546b user: drh tags: trunk)
19:18
In FTS1: Retain the Query structure as part of the cursor. It will be used laster as part of snippet generation. (CVS 3414) (check-in: 607d928c user: drh tags: trunk)
18:40
Earlier refactoring changed name in fts1.c but not fts1.h. (CVS 3413) (check-in: d4edb803 user: shess tags: trunk)
17:17
Minor code cleanup in FTS1. (CVS 3412) (check-in: fca59281 user: drh tags: trunk)
16:02
Implementation of "column:" modifiers in FTS1 queries. (CVS 3411) (check-in: 820634f7 user: drh tags: trunk)
15:20
Module spec parser enhancements for FTS1. Now able to cope with column names in the spec that are SQL keywords or have special characters, etc. Also added support for additional control lines. Column names can be followed by a type specifier (which is ignored.) (CVS 3410) (check-in: adb780e0 user: drh tags: trunk)
12:36
Fix the FTS1 test cases and add new tests. Comments added to the FTS1 code. (CVS 3409) (check-in: 528036c8 user: drh tags: trunk)
02:18
Allow virtual tables to contain multiple full-text-indexed columns. Added a magic column "_all" which can be used for querying all columns in a table at once.

For now, each posting list stores position/offset information for multiple columns. We may implement separate posting lists for separate columns at some future point. (CVS 3408) (check-in: 366a70b0 user: adamd tags: trunk)

2006-09-12
23:36
Answer queries for a particular rowid in a full-text table by looking up that rowid directly rather than by performing a table scan. (CVS 3407) (check-in: 877d5558 user: adamd tags: trunk)
2006-09-11
23:45
Add support for IF EXISTS on CREATE/DROP TRIGGER/VIEW. Ticket #1899. (CVS 3406) (check-in: e4fe736c user: drh tags: trunk)
21:39
Re-use deleted rowids for new segments. This has a somewhat surprising impact on performance, I believe because it keeps the index smaller (by keeping rowids smaller), and also because it improves locality in the table (deleting a row means we've already touched the pages leading to that rowid). (CVS 3405) (check-in: 2f5f6290 user: shess tags: trunk)
11:13
Get VACUUM working with virtual tables. (CVS 3404) (check-in: d5ffef38 user: drh tags: trunk)
00:34
Add a rudimentary tokenizer and parser to FTS1 for parsing the module arguments during initialization. Recognized arguments include a tokenizer selector and a list of virtual table columns. (CVS 3403) (check-in: 227dc3fe user: drh tags: trunk)
2006-09-10
17:31
Add pzErr parameters to the xConnect and xCreate methods of virtual tables in order to provide better error reporting. This is an interface change for virtual tables. Prior virtual table implementations will need to be modified and recompiled. (CVS 3402) (check-in: f44b8bae user: drh tags: trunk)
17:08
Add a new zErrMsg field to the sqlite3_vtab structure to support returning error messages from virtual table constructors. This change means that virtual table implementations compiled as loadable extensions for version 3.3.7 will need to be recompile for version 3.3.8 and will not be usable by both versions at one. The virtual table mechanism is still considered experimental so we feel justified in breaking backwards compatibility in this way. Additional interface changes might occurs in the future. (CVS 3401) (check-in: 36693a5c user: drh tags: trunk)
03:34
Add some simple test cases for the OR and NOT logic of the fts1 module. Fix lots of bugs discovered while developing these test cases. (CVS 3400) (check-in: 70bcff02 user: drh tags: trunk)
2006-09-09
23:11
Add support for OR and NOT terms in fts1. (CVS 3399) (check-in: ae502657 user: drh tags: trunk)
2006-09-08
17:00
Write doclists using a segmented technique to amortize costs better. New items for a term are merged with the term's segment 0 doclist, until that doclist exceeds CHUNK_MAX. Then the segments are merged in exponential fashion, so that segment 1 contains approximately 2*CHUNK_MAX data, segment 2 4*CHUNK_MAX, and so on. (CVS 3398) (check-in: b6b93a33 user: shess tags: trunk)
12:49
Add HAVE_GMTIME_R and HAVE_LOCALTIME_R flags and use them if defined. Unable to modify the configure script to test for gmtime_r and localtime_r, however, because on my SuSE 10.2 system, autoconf generates a configure script that does not work. Bummer. Ticket #1906 (CVS 3397) (check-in: 862302ea user: drh tags: trunk)