danielk1977 [Sat, 11 Oct 2008 17:51:38 +0000 (17:51 +0000)]
When transfering an error message from a statement handle to the database handle so that it can be accessed by sqlite3_errmsg(), a malloc may fail. If this malloc fails, it is considered benign. (CVS 5806)
drh [Sat, 11 Oct 2008 17:35:16 +0000 (17:35 +0000)]
Fix to sqlite3DbMallocRaw() when SQLITE_OMIT_LOOKASIDE is defined so that
once it fails it continues to fail. Add a comment explaining why this is
important. (CVS 5804)
drh [Sat, 11 Oct 2008 17:06:04 +0000 (17:06 +0000)]
Fix a OOM segfault in the BETWEEN operator parsing - discovered while
using SQLITE_OMIT_LOOKASIDE. Add SQLITE_OMIT_LOOKASIDE to test_config.c and
bypass lookaside.test when defined. (CVS 5803)
drh [Sat, 11 Oct 2008 16:47:35 +0000 (16:47 +0000)]
Fix a memory leak on ORDER BY of a compound select caused by the resolver
on a flattened query. Also fix a OOM segfault in WHERE clause processing. (CVS 5801)
drh [Sat, 11 Oct 2008 15:38:29 +0000 (15:38 +0000)]
Added an assert() to detect lookaside memory leaks. Also added the
SQLITE_OMIT_LOOKASIDE compile-time option which is useful in trying to
track down lookaside memory leaks. (CVS 5800)
danielk1977 [Thu, 9 Oct 2008 18:48:30 +0000 (18:48 +0000)]
Fix an assert() failure that can occur if the user attempts to set an into an integer primary key column to a text value in a table that has a BEFORE UPDATE trigger. (CVS 5787)
drh [Thu, 9 Oct 2008 15:56:45 +0000 (15:56 +0000)]
Add a test to verify the sqlite3_column_name() interface returns the
correct value when the query is of the form: "SELECT rowid,* FROM...".
Ticket #3429. (CVS 5785)
danielk1977 [Wed, 8 Oct 2008 17:58:48 +0000 (17:58 +0000)]
After an OP_NullRow is executed on a cursor, cause any subsequent OP_Next or OP_Prev to behave as if there were no more rows to traverse. Ticket #3424. (CVS 5782)
drh [Tue, 7 Oct 2008 19:53:14 +0000 (19:53 +0000)]
Raise the hard upper bound on SQLITE_MAX_FUNCTION_ARG to 1000 from 100.
The default upper bound is still 100, but it can now be raised as high
as 1000 at compile-time. (CVS 5780)
drh [Tue, 7 Oct 2008 15:25:48 +0000 (15:25 +0000)]
Remove the SQLITE_MUTEX_APPDEF compile-time option. The SQLITE_THREADSAFE=0
option always removes all mutex code. For application-defined mutexes only,
use SQLITE_THREADSAFE=1 with SQLITE_MUTEX_NOOP=1. Ticket #3421. (CVS 5779)
danielk1977 [Tue, 7 Oct 2008 11:51:20 +0000 (11:51 +0000)]
Fix a problem with hot-journal rollback. SQLITE_CANTOPEN was being returned if the hot-journal file contained a pointer to a master journal file that did not exist. (CVS 5775)
shane [Tue, 7 Oct 2008 05:27:11 +0000 (05:27 +0000)]
Initial support for LIMIT clause on DELETEs and UPDATEs. Changes likely with more testing. The code can be omitted with the define SQLITE_OMIT_UPDATE_DELETE_LIMIT. (CVS 5774)
danielk1977 [Thu, 2 Oct 2008 13:50:55 +0000 (13:50 +0000)]
Optimize queries that contain "WHERE rowid IN (x, y, z...)" by using an intkey btree to store the (x, y, z...) set instead of an index btree. (CVS 5760)
Misc clean up. Wrapped a CE only variable in if-defs. Changed to only provide cache hint for CE builds (as this prevents CE from compressing the file.) Performance testing on XP and Vista showed caching hint had little effect when the DB size was much smaller than the O/S disk cache size, and provided only marginal benefit when the DB size was much larger than the cache. On Vista, overall system performance was hurt for very large DBs. Ticket #3387. (CVS 5753)
Remove the reparentPage() and reparentChildPages() functions from btree.c. All calls to these functions can now be replaced by a call to setChildPtrmaps(). (CVS 5751)
Instead of storing a pointer to the parent page in the MemPage structure, have each B-Tree cursor keep track of the ancestry of the current page. (CVS 5747)
On windows, avoid running those tests in exclusive.test that require the journal file to be externally accessed while SQLite is holding it open. This doesn't work on windows. (CVS 5742)
Add file fts3_icu.c to the amalgamation. Because of the way header files are included into sqlite3.c, fts3_icu.c has to appear after all the other fts3 and icu extension files. Ticket #3398. (CVS 5741)
Fix the TCL installer so that it omits the release number. Ticket #3396.
Use strcmp() instead of sqlite3StrICmp() in the "copy" method of the SQLite
object in the TCL interface. (CVS 5735)
Get rid of all of the compiler magic associated with SQLITE_EXPERIMENTAL
and SQLITE_DEPRECATED. It was causing more problems than it was solving.
Ticket #3395 et al. (CVS 5732)
In function moveToRoot(), use the MemPage.pParent pointers to find the root page if they are valid. This is slightly faster than requesting a new reference to the root page from the pager layer. (CVS 5725)
Speed improvements for in-memory databases by omitting flag clearing on pages
where it is impossible for the flag to be set and by avoiding assert()s on
non-debugging builds. Ticket #3384. (CVS 5715)
Add test cases for ticket #3378 and #3381. Add a temporary hack to get those
to problems fixed. The hack causes failures in alias.test, but those are much
less serious than the aforementioned tickets. This is a stop-gap until we can
figure out a proper fix. (CVS 5711)
Initialize variable pKeyDup in multiSelectOrderBy(). Technically it doesn't need to be initialized, but the reasoning required to come to that conclusion is too complicated for some automated systems. So it is initialized to keep some compilers happy. Ticket #3382. (CVS 5710)
Use (file nativename (pwd)) instead of just (pwd) to find the name of the current directory to pass to "PRAGMA temp_store_directory" in pragma.test. This helps the test pass on non-unix systems. (CVS 5709)
If the xAccess() call used by "PRAGMA temp_store_directory = /new/path/" to determine if the supplied directory is writable returns an error, assume the directory is not writable. (CVS 5707)