drh [Sun, 22 Jun 2008 12:37:57 +0000 (12:37 +0000)]
Fix a bug in the KEYINFO handling within select.c. Change the OP_Move
opcode to take a count and to move multiple registers. Initial code for
the compound-select merge optimization is added but is incomplete
and is commented out. (CVS 5272)
danielk1977 [Sat, 21 Jun 2008 18:07:37 +0000 (18:07 +0000)]
Add test file permutations.test, which runs various other test files with sqlite configured in various ways. This adds a few new tests and replaces test files autovacuum_crash.test, autovacuum_ioerr.test, exclusive3.test, jrnlmode2.test, jrnlmode3.test, jrnlmode4.test, mutex2 and onefile.test. (CVS 5265)
danielk1977 [Sat, 21 Jun 2008 08:12:15 +0000 (08:12 +0000)]
Fix a problem in the test suite that could cause a crash if using a pre-allocated block of memory for pages (the problem was that sqlite3_shutdown() was being called while there were still open database connections). (CVS 5259)
danielk1977 [Fri, 20 Jun 2008 14:59:51 +0000 (14:59 +0000)]
Add a mode to the sqlite3_test_control() interface to register hooks called at the beginning and end of "benign malloc failure" blocks. This allows malloc() failure testing to be done using public APIs only. (CVS 5254)
drh [Thu, 19 Jun 2008 00:16:08 +0000 (00:16 +0000)]
Add some test logic to the new memory allocation subsystem. (Lots more needed.)
The test suite is currently indicating memory leaks, though it is unclear if
this is a true code problem or just an instrumentation problem. (CVS 5240)
drh [Wed, 18 Jun 2008 15:34:09 +0000 (15:34 +0000)]
Make sure aggregate functions can take any number of arguments up to the
limit imposed by SQLITE_LIMIT_FUNCTION_ARGS. Ticket #3179. Modify
the group_concat() function to take an unlimited number of arguments in
order to facilitate testing this behavior. (CVS 5233)
drh [Wed, 18 Jun 2008 13:27:46 +0000 (13:27 +0000)]
Added new configuration options to query the low-level malloc interface
and to provide memory buffers for scratch, page-cache, and heap memory
allocators. (CVS 5231)
drh [Wed, 18 Jun 2008 02:01:07 +0000 (02:01 +0000)]
Remove mem3.c and mem5.c from the amalgamation for the time being, since
they do not currently work. We will add them back later once they are fixed. (CVS 5229)
danielk1977 [Mon, 16 Jun 2008 14:19:57 +0000 (14:19 +0000)]
Fix a problem with the incremental blob API. sqlite3_blob_open() was always reading the data for the leftmost column of the row that the opened blob was stored in. If this column happened to contain a (the) large blob, sqlite would make a large memory allocation to read the data into. Which defeats the purpose of using incremental blobs. (CVS 5222)
drh [Sun, 15 Jun 2008 02:51:47 +0000 (02:51 +0000)]
Continuing work on the new memory allocation subsystem.
Added routines for temporary memory allocation. Right the btree
balance mechanism to only do one temporary allocation at a time. (CVS 5220)
drh [Sat, 14 Jun 2008 16:56:21 +0000 (16:56 +0000)]
Continuing progress on the new memory allocation subsystem. Added the
sqlite3_mem_methods structure for defining new memory allocators at
run-time. (CVS 5219)
drh [Fri, 13 Jun 2008 18:24:27 +0000 (18:24 +0000)]
Progress toward implementation of sqlite3_config() and a rework of the
mutex and memory allocation subsystems. This is an incremental check-in. (CVS 5218)
drh [Thu, 12 Jun 2008 18:05:40 +0000 (18:05 +0000)]
Fix a typo in the date/time function tests. Add additional cases to
the zeroblob tests to make sure sqlite3_bind_zeroblob() does not use
excess memory. (CVS 5216)
drh [Thu, 12 Jun 2008 16:35:38 +0000 (16:35 +0000)]
Convert the date/time functions to work with milliseconds since the
julian epoch internally (instead of days since the epoch) in order to avoid
problems with floating-point roundoff error. The interface is unchanged. (CVS 5215)
drh [Thu, 12 Jun 2008 13:50:00 +0000 (13:50 +0000)]
Avoid unnecessary float->text->float conversions in date/time processing.
This change necessary to reproduce the problem reported by BareFoot. (CVS 5213)
drh [Thu, 12 Jun 2008 12:51:37 +0000 (12:51 +0000)]
Add the ability to disable the "localtime" modifier in the date/time
functions. This might be necessary for systems that do not support
localtime_r() or localtime_s(). (CVS 5212)
danielk1977 [Tue, 10 Jun 2008 17:30:26 +0000 (17:30 +0000)]
Invalidate sqlite3_blob* handles whenever an SQL statement is used to delete or modify the rows containing the open blob. Previously, modifying the table containing the open blob in any way invalidated the handle. This was too restrictive. (CVS 5199)
danielk1977 [Thu, 5 Jun 2008 16:47:39 +0000 (16:47 +0000)]
Reorganize some of the code that detects expression trees with a depth greater than EXPR_MAX_DEPTH so that they are detected earlier. This further reduces the opportunities for stack overflow. (CVS 5189)
danielk1977 [Wed, 4 Jun 2008 06:45:59 +0000 (06:45 +0000)]
Add "pragma journal_size_limit", used to limit the space consumed by persistent journal files left in the file-system after a transaction has concluded in exclusive (or journal_mode=persist) mode. (CVS 5185)
shane [Thu, 29 May 2008 20:22:37 +0000 (20:22 +0000)]
Consolidated inline assembly versions of "hwtime()" into hwtime.h. Provided MSVC version. Modified code for consistent use of hwtime(). Changed implementation to use sqlite_uint64 and sqlite_int64 instead of unsigned long long int and long long int for MSVC compiler support. (CVS 5179)
shane [Thu, 29 May 2008 20:22:37 +0000 (20:22 +0000)]
Consolidated inline assembly versions of "hwtime()" into hwtime.h. Provided MSVC version. Modified code for consistent use of hwtime(). Changed implementation to use sqlite_uint64 and sqlite_int64 instead of unsigned long long int and long long int for MSVC compiler support. (CVS 5178)
shane [Thu, 29 May 2008 03:54:26 +0000 (03:54 +0000)]
Moved check and define for OS_WINCE from os_win.c to os.h (with the other OS_* defines). This allows OS_WINCE to be available for mutex_w32.c which is included earlier than os_win.c in the almagamation. (CVS 5176)
drh [Thu, 29 May 2008 03:20:59 +0000 (03:20 +0000)]
When initializing the sqlite_sequence entry for an AUTOINCREMENT table,
make sure the value is an reasonable integer even if the initial insert
failed. Ticket #3148. (CVS 5175)