danielk1977 [Tue, 1 Jan 2008 05:49:07 +0000 (05:49 +0000)]
Define SQLITE_CORE=1 at the start of the amalgamation file for the benefit of any extension source code (i.e. fts3) appended to it. Ticket #2858. (CVS 4649)
danielk1977 [Sat, 29 Dec 2007 13:39:19 +0000 (13:39 +0000)]
Add experimental pragma "quick_check", a reduced version of integrity_check that runs without most of the overhead of the full integrity_check. (CVS 4645)
drh [Sat, 29 Dec 2007 13:18:22 +0000 (13:18 +0000)]
Mem3.c enhanced so that an allocation of N bytes only requires (N+11)&~7 bytes
instead of (N+15)&~7 bytes of heap storage. Minimum heap usage per
allocation is still 16 bytes. 8-byte alignment is preserved. (CVS 4644)
drh [Mon, 17 Dec 2007 16:20:06 +0000 (16:20 +0000)]
When SQLITE_MAX_SQL_LENGTH is 0, disable the limit. Make the default 0.
Once again build the sqlite3 CLI from individual source files so that
it can be built on systems that lack tclsh. Tickets #2845 and #2846. (CVS 4636)
drh [Thu, 13 Dec 2007 21:54:09 +0000 (21:54 +0000)]
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)
drh [Thu, 13 Dec 2007 03:45:07 +0000 (03:45 +0000)]
ORDER BY in a compound SELECT will first match against the left-most SELECT.
If there is no match there, it begins working its way to the right. (CVS 4621)
drh [Thu, 13 Dec 2007 02:45:31 +0000 (02:45 +0000)]
Towards getting ORDER BY to match against the correctin columns.
This version only looks at the left-most column in a compound SELECT.
That is the correct thing to do, but not what SQLite has historically done. (CVS 4620)
drh [Wed, 12 Dec 2007 12:25:21 +0000 (12:25 +0000)]
Fix database corrupting code generation error for UPDATE OR REPLACE.
ticket #2832. Still need to add test cases and additional defensive
logic to avoid future occurrences of similar problems. (CVS 4613)
drh [Sat, 8 Dec 2007 21:10:20 +0000 (21:10 +0000)]
Better resolution of ORDER BY terms in compound queries. Candidate
solution for ticket #2822. Needs more testing and documentation
before going final. (CVS 4602)
shess [Fri, 7 Dec 2007 23:47:53 +0000 (23:47 +0000)]
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)
drh [Fri, 7 Dec 2007 18:55:28 +0000 (18:55 +0000)]
In shared-cache mode, make sure the busy hander invoked is the
busy handler associated with the database connection that caused
the lock contention in the first place. (CVS 4598)
drh [Tue, 4 Dec 2007 16:54:52 +0000 (16:54 +0000)]
Make sure statement journals are initiated when doing DROP operations
(since the DROP might fail after sqlite_master changes). Also make
sure statement journals are initiated if there are pending SELECT
statements. Ticket #2820. (CVS 4591)
danielk1977 [Sun, 2 Dec 2007 11:46:34 +0000 (11:46 +0000)]
When parsing CREATE INDEX statements from the sqlite_master table, do not search the temp database schema for the corresponding table. Only consider the database for which the schema is being parsed. Ticket #2817. (CVS 4587)
danielk1977 [Thu, 29 Nov 2007 17:43:27 +0000 (17:43 +0000)]
When using an index to scan a database table, read column data from the index in preference to the table. This increases the likelihood that the table will not be required at all. (CVS 4580)
drh [Wed, 28 Nov 2007 22:36:40 +0000 (22:36 +0000)]
Add the {quote: StrAccum} object
for accumulating strings. Revamp xprintf to use
the new object. Rewrite the group_concat() function to use the new object.
Productize and test the group_concat() function. (CVS 4578)
drh [Wed, 28 Nov 2007 16:19:56 +0000 (16:19 +0000)]
Change the BTree so that it uses the Pagers temporary page space when
reorganizing the rows on a page, rather than mallocing for space of
its own. In this way, we avoid having to deal with a malloc failure
deep down inside the page reorganizer. Ticket #2806 (CVS 4577)
drh [Wed, 28 Nov 2007 14:04:57 +0000 (14:04 +0000)]
Reorganize the code for the homegrown recursive mutexes. Fix a place
in the previous check-in where the #ifdef label was incorrect.
Ticket #2804. (CVS 4576)
drh [Wed, 28 Nov 2007 13:55:55 +0000 (13:55 +0000)]
Clarify the conditions under which homegrown recursive mutexes work
(they require a coherent cache) and only enable them if there is an
explicit #define so as to avoid accidental use on platforms that do
not meet the constraints. Ticket #2805. (CVS 4575)
drh [Wed, 28 Nov 2007 13:43:16 +0000 (13:43 +0000)]
Preset the legacy_file_format pragma to the value of the primary
database so that a VACUUM will not unknowingly alter the setting.
Ticket #2804. (CVS 4574)
drh [Wed, 28 Nov 2007 00:51:34 +0000 (00:51 +0000)]
Add an implementation of recursive mutexes for unix systems that
lack pthreads recursive mutexes (ex: Solaris 2.6). Modern unix
systems continue to use the recursive mutexes provided by pthreads. (CVS 4573)
drh [Tue, 27 Nov 2007 23:11:45 +0000 (23:11 +0000)]
Use the hexio test utility rather than TCL's binary I/O to avoid
32/64-bit problems in io.test. Ticket #2803. (This is a change
to the test harness only - not to SQLite.) (CVS 4571)
drh [Fri, 23 Nov 2007 15:12:44 +0000 (15:12 +0000)]
Remove most documentation from the source code repository.
Documentation configuration management is now handled by a
separate repository at http://www.sqlite.org/docsrc. (CVS 4553)
drh [Fri, 23 Nov 2007 15:02:19 +0000 (15:02 +0000)]
Make sure that INSERT INTO ... SELECT ... always uses an ephemeral
intermediate table if the SELECT clause refers to the destination table,
even if the SELECT clause is compound or uses the destination table
in a subquery. This fixes a long-standing bug that can cause an
infinite loop for some SQL statements. (CVS 4552)