Commit Graph

3684 Commits

Author SHA1 Message Date
shess 06c69d2ed6 Buffer updates per-transaction rather than per-update. If lots of
updates happen within a single transaction, there was a lot of wasted
encode/decode overhead due to segment merges.  This code buffers
updates in memory and writes out larger level-0 segments.  It only
works when documents are presented in ascending order by docid.
Comparing a test set running 100 documents per transaction, the total
runtime is cut almost in half. (CVS 3751)

FossilOrigin-Name: 0229cba69698ab4b44f8583ef50a87c49422f8ec
2007-03-29 18:41:03 +00:00
drh 3ceeb75680 Change the name of PAGER_SECTOR_SIZE to SQLITE_DEFAULT_SECTOR_SIZE. Make
the new OS-layer interface routine for finding sector size optional. (CVS 3750)

FossilOrigin-Name: 0fb9af1d6e20bf25511c6d2097937cc11137776e
2007-03-29 18:19:52 +00:00
drh 2ecad3b443 Make sure the strftime() date conversions put in leading zeros correctly.
Ticket #2276. (CVS 3749)

FossilOrigin-Name: e853067ec4db3eedfb4adcdd4172de2c55b9ac58
2007-03-29 17:57:21 +00:00
danielk1977 7152de8dd2 Avoid calling OsDelete() on journal files when they are opened for temporary databases. Fix for #2255. (CVS 3748)
FossilOrigin-Name: e746832f5f3e1c58e6f6456866156824d23dd846
2007-03-29 17:28:14 +00:00
danielk1977 69b637b56b Add a couple of test cases to improve coverage testing. (CVS 3747)
FossilOrigin-Name: 0b22ce3637f87c453084c5bd994b6b19a0b014c0
2007-03-29 17:07:52 +00:00
shess 194f8972d5 Don't call ctype functions on hi-bit chars. Some platforms raise
assertions when this occurs, and it's almost certainly not the right
thing to do in the first place. (CVS 3746)

FossilOrigin-Name: f6c3abdc6c5e916e5366ba28fb1cd06ca3554303
2007-03-29 16:30:38 +00:00
danielk1977 ae7fc49def Assume the malloc-failed flag cannot already be set when calling sqlite3_errmsg(16)(). (CVS 3745)
FossilOrigin-Name: 54fa22273d551e00e1abd86992ff7c62ec4e0daf
2007-03-29 15:00:52 +00:00
drh 42242ded5e Fix a bug in XFER optimization introduced by check-in (3736). (CVS 3744)
FossilOrigin-Name: 3714ac173289e580a0302a5a3beac05823d92c5b
2007-03-29 13:35:35 +00:00
danielk1977 8c8eba1087 Explicitly test some error cases that up until now have not been checked. (CVS 3743)
FossilOrigin-Name: 0b7bd9c315501743e2364ecccefeeba326d5df51
2007-03-29 12:24:16 +00:00
danielk1977 a713f2c331 Explicitly test some error cases that up until now have not been checked. (CVS 3742)
FossilOrigin-Name: f26b014109b1b20367044c5d3fcb347af73d07aa
2007-03-29 12:19:11 +00:00
drh e4d9081307 Change BtreeMoveto so that it can be biased to the right or to the center.
Use a right bias when appending and a center bias when searching.  This
gives about a 15% reduction in calls to sqlite3VdbeRecordCompare. (CVS 3741)

FossilOrigin-Name: ad4a6b1a91bcefd8a4c75e8dc99c1153c72c31a3
2007-03-29 05:51:49 +00:00
drh f1d68b3096 Bias the b-tree binary search toward the high end. The common case is to
append data and this heuristic makes append run much faster because there
are fewer comparisons. (CVS 3740)

FossilOrigin-Name: a9877f616b24737152627841fcbd80cc28426f1e
2007-03-29 04:43:26 +00:00
drh b7bac72350 Get LEMON working again when YYSTACKDEPTH is greater than zero. (CVS 3739)
FossilOrigin-Name: e72c81dbb309709462e49c4e3e90c3e16ead1265
2007-03-29 02:26:45 +00:00
drh b19fd012b0 Lemon change: compile the resulting parser with -DYYSTACKDEPTH=0 or set
the "%stack_size" parameter to 0 in the grammar and the parser stack
will be dynamically allocated using realloc() and free().  The default
behavior is to have a finite depth stack. (CVS 3738)

FossilOrigin-Name: 06719b741ab1a2df0371f6d587563cc81eb8880a
2007-03-29 01:44:45 +00:00
drh 7fc2f41bef Patch so the the code compiles with -DSQLITE_OMIT_CHECK=1. (CVS 3737)
FossilOrigin-Name: 72cea358da4bd38af322f18f2a753171f7decaf8
2007-03-29 00:08:24 +00:00
drh 95bad4c751 Improvements to the XFER Optimization of the INSERT statement. (CVS 3736)
FossilOrigin-Name: 53fff7d1f2f829010a2641c7738538b3155da4b2
2007-03-28 18:04:10 +00:00
drh 72e8fa42f9 Correctly handle NULLs in IN operators. Ticket #2273.
The changes in where.c and in the WhereLevel.aInLoop structure are
not strictly necessary to fix this problem - they just make the code
easier to read.  Only the change in OP_Next/OP_Prev operator of vdbe.c
is required. (CVS 3735)

FossilOrigin-Name: 26348556d824c032851e409ac510cddb55c200bf
2007-03-28 14:30:06 +00:00
drh 930cc5864e Update comments in sqlite3.h. No changes to code. (CVS 3734)
FossilOrigin-Name: 1c2656fdf6176a7365db4e11f4bbf47721da72b4
2007-03-28 13:07:40 +00:00
drh 600e46a021 Fix an memory allocation error revealed by malloc3.test. (CVS 3733)
FossilOrigin-Name: 0f7fdb022ca7c94f7d264192e18b6e2bd1e8cff4
2007-03-28 01:59:33 +00:00
drh 56424db419 The SQLITE_ENABLE_LOAD_EXTENSION macro enables the load_extension() SQL
function by default without having to invoke sqlite3_enable_load_extension()
first. (CVS 3732)

FossilOrigin-Name: 113aab2cdf4480683cd5e844b5a48dcc093792ff
2007-03-27 22:24:11 +00:00
drh 3262cb24ff Fix the prototype of the CodecAttach function in attach.c. (CVS 3731)
FossilOrigin-Name: 902413e81b1ae8bee09987c798622a55ab2a1504
2007-03-27 21:47:06 +00:00
danielk1977 3dedc1985e Remove a c++ comment in pager.c. (CVS 3730)
FossilOrigin-Name: e4452e8aede9282feaeeac19d0cdf82b01c3cc19
2007-03-27 17:37:31 +00:00
danielk1977 979f38e5ee Test handling of IO errors that occur in OsDelete() or OsTruncate() operations. Also use an anonymous file for temporary storage during a VACUUM. (CVS 3729)
FossilOrigin-Name: b24a6e7b024c8b9a0b6fd15bd8f247e458781ca2
2007-03-27 16:19:51 +00:00
drh 8ef6eff4a5 Updates to the VACUUM documentation. Ticket #2257. (CVS 3728)
FossilOrigin-Name: c61c97c978dab7535c94033631f5ad2355c55057
2007-03-27 15:00:30 +00:00
drh fdbcdee5ff The -DSQLITE_OMIT_ATTACH=1 option now omits both the ATTACH and VACUUM
commands. Ticket #2268.
 The regression test suite depends on both of these commands
and will not run if compiled with this option. (CVS 3727)

FossilOrigin-Name: cbebfb89603044e48b3a87b79d1eefbbc5b4c8a5
2007-03-27 14:44:50 +00:00
drh a4124a06cc Fix off-by-one errors in the header comments of btree.c. Ticket #2272. (CVS 3726)
FossilOrigin-Name: a70ea7202d8ffb0321ff8f2e5036731bb1742eb8
2007-03-27 14:05:22 +00:00
drh cf64372910 More strict aliasing fixes. The single source file library now runs
successfully with -fstrict-alias. (CVS 3725)

FossilOrigin-Name: c8a8a189a82500aab501e9949f5b197c0b80b3a9
2007-03-27 13:36:37 +00:00
drh e2330c8608 Get the -DSQLITE_OMIT_XFER_OPT option working. Run speed tests on a full
regression.  Add the script for generating sqlite3.c. (CVS 3724)

FossilOrigin-Name: 1dd9d0775a8199047de30218af71a31c731fedb1
2007-03-27 12:04:05 +00:00
drh 91c58e23b2 Get the -DSQLITE_OMIT_XFER_OPT option working. Run speed tests on a full
regression.  Add the script for generating sqlite3.c. (CVS 3723)

FossilOrigin-Name: 42c038518c4ba0ef827a5717d450f95165b3c729
2007-03-27 12:04:04 +00:00
drh 4f0c587819 Modify sources to that they can be combined into a single sqlite3.c source
file.  Eliminate all type-pruned pointer warnings. (CVS 3722)

FossilOrigin-Name: 0b832e218ec12b0eb559e407d80aba6709e2ea85
2007-03-26 22:05:01 +00:00
drh 45068f4b5c Set the same random seed for the speed tests. (CVS 3721)
FossilOrigin-Name: 8fe317054982969ad539cdbf1b996b97d86ec4f2
2007-03-26 16:30:15 +00:00
danielk1977 341a91c672 Run some malloc() tests with exclusive-access mode. (CVS 3720)
FossilOrigin-Name: 9ebba469023723652c4dbba3d9982a64a1fb144f
2007-03-26 16:13:58 +00:00
danielk1977 c7c7e623a9 Discard the pager-cache when the page-size is changed. (CVS 3719)
FossilOrigin-Name: e4209f7193d160709b0d8b5cd358df5649a97dc0
2007-03-26 15:46:00 +00:00
drh e4dd73b4fa Avoid unnecessary calls to pager_unwritelock() when in exclusive-access mode.
Add the speed2.test script to the test suite. (CVS 3718)

FossilOrigin-Name: ab53f5086334ea2f6c20c8f9d043baff39fae8d7
2007-03-26 13:48:12 +00:00
danielk1977 c5859718af Run some malloc() tests with exclusive-access mode. (CVS 3717)
FossilOrigin-Name: 127454903764daff17390941a002f527ee2ffc87
2007-03-26 12:26:27 +00:00
danielk1977 ded6f4b2fe Add some tests and fixes surrounding exclusive-access mode and the pager change-counter. (CVS 3716)
FossilOrigin-Name: 72cb2e1a73cd09d32900bb473377f66ff55058fb
2007-03-26 10:27:18 +00:00
danielk1977 29e4aa0194 Add some documentation for pragma locking_mode. (CVS 3715)
FossilOrigin-Name: 394b174e59262a84c530ea73c367d8c389a681b5
2007-03-26 08:41:12 +00:00
danielk1977 334cdb63b0 Some fixes and test cases for exclusive access mode. (CVS 3714)
FossilOrigin-Name: 899e60707bea0fabab2ff3ac8a3fbb676a539120
2007-03-26 08:05:12 +00:00
drh 6d54da05ec Add the sqlite3_prepare_v2 and sqlite3_prepare16_v2 APIs to the loadable
extension interface. (CVS 3713)

FossilOrigin-Name: f02ba56d5c6bbd57682a6bb57e9f92021dfb066e
2007-03-25 19:08:46 +00:00
danielk1977 414834686c Changes for exclusive access mode. There are still some bugs. (CVS 3712)
FossilOrigin-Name: b6c700370be29db2b974f9abd719c3e56abf8058
2007-03-24 16:45:04 +00:00
danielk1977 e277be0545 Discard the contents of the pager-cache only when the change-counter indicates that it is stale. (CVS 3711)
FossilOrigin-Name: 07b56965f3227c9f78680728b955395295c4aa49
2007-03-23 18:12:06 +00:00
danielk1977 a3d4c887e0 Add a comment to the OsSectorSize() function. (CVS 3710)
FossilOrigin-Name: 0fd9983a98d8d61654f252f1708a4d7232a96b53
2007-03-23 10:08:38 +00:00
drh 8350a2187a In os_unix.c, make a distinction between pread() and pread64(). Add a new
compile-time macro USE_PREAD64 to select the latter. (CVS 3709)

FossilOrigin-Name: 177cd92910d01c97eb3133a59fad417edbb1aa92
2007-03-22 15:22:06 +00:00
danielk1977 73375822d4 Call sqlite3_free() instead of free() to release a buffer allocated by sqlite3_vmprintf() in test_async.c (test suite bug only). (CVS 3708)
FossilOrigin-Name: b078f09bffee5863d595d281f2ecd14e1c9ec727
2007-03-22 15:20:00 +00:00
shess 13ee81fe96 Refactor PLWriter to remove owned buffer. DLCollector (Document List
Collector) now handles the case where PLWriter (Position List Writer)
needed a local buffer.  Change to using the associated DLWriter
(Document List Writer) buffer, which reduces the number of memory
copies needed in doclist processing, and brings PLWriter operation in
line with DLWriter operation. (CVS 3707)

FossilOrigin-Name: d04fa3a13a84f49074c673b8ee2fb6541da061b5
2007-03-22 00:14:28 +00:00
shess 4607fc06f6 Refactor PLWriter in preparation for buffered-document change.
Currently, PLWriter (Position List Writer) creates a locally-owned
DataBuffer to write into.  This is necessary to support doclist
collection during tokenization, where there is no obvious buffer to
write output to, but is not necessary for the other users of PLWriter.
 This change adds a DLCollector (Doc List Collector) structure to
handle the tokenization case.

Also fix a potential memory leak in writeZeroSegment().  In case of
error from leafWriterStep(), the DataBuffer dl was being leaked. (CVS 3706)

FossilOrigin-Name: 1b9918e20767aebc9c1e7523027139e5fbc12688
2007-03-20 23:52:37 +00:00
danielk1977 3b8a05f681 Modify the interface to the pager sub-system in preparation for performing IO in blocks based on sector-size, not database page-size. (CVS 3705)
FossilOrigin-Name: 7dc7658887046f066b564a5994578074a99756ba
2007-03-19 17:44:26 +00:00
danielk1977 a8553141c9 Add some test cases simulating crashes with various storage medium sector sizes. (CVS 3704)
FossilOrigin-Name: c3c5f658cf9c69b6e81e63fbde5dd0a854be9fc7
2007-03-19 15:04:54 +00:00
danielk1977 b94bf855b2 Fix some problems with test cases in shared_err.test. Also a real bug causing a segfault after an IO error in pager.c. (CVS 3703)
FossilOrigin-Name: 9f62ef1ec385d9f1a1913439dc4c2d710373f12a
2007-03-19 13:53:37 +00:00
drh fe5d71dd7f Fix a comment in btree.c (CVS 3702)
FossilOrigin-Name: 05700c11a9e5177a437d2240e72fb61ea47b973b
2007-03-19 11:54:10 +00:00