Commit Graph

8389 Commits

Author SHA1 Message Date
drh
93ee23cc03 Try to optimize LIKE and GLOB operators when RHS contains no wildcard.
Ticket [e090183531fc274747]

FossilOrigin-Name: 613a87d62fd1f8526d53136efae5adae91824bcf
2010-07-22 12:33:57 +00:00
drh
6ba8e9667c Tweaks to the virtual table documentation contained in comments of sqlite3.h.
No changes to actual code.

FossilOrigin-Name: f5866d4723460e80814b8599e0b84ff4a924da6f
2010-07-22 11:40:34 +00:00
drh
300c18a1b5 Fix a comment typo. This check-in is 3.7.0 release candidate 2.
FossilOrigin-Name: b36b105eab6fd3195f4bfba6cb5cda0f063b7460
2010-07-21 16:16:28 +00:00
shaneh
d5a724000b Added fix for race conditions from os_unix.c; added saving of errno in two places.
FossilOrigin-Name: 13ed106c8c279422a6159e28c6887d13a88b7b8b
2010-07-20 20:23:38 +00:00
dan
0668f5916e Fix a race condition in os_unix.c that may occur when one thread is opening a connection to a shared-memory block and another is either closing or locking the same shared-memory.
FossilOrigin-Name: 3b7330c19a5327322068e9460018fe0152b8ac87
2010-07-20 18:59:00 +00:00
drh
74bec6b93f Update the CLI test scripts for version 3.7.0.
FossilOrigin-Name: 92fe70dadde2eb551518d69ac2eaa6a0151d7dfe
2010-07-19 15:01:43 +00:00
dan
d3f6b81a76 Use exit(255) instead of abort() in the tcl [sqlite_abort] test command. This stops testfixture from creating dozens of core files each time tests are run.
FossilOrigin-Name: aec9e13148671e612d4ba674e74c12116573434f
2010-07-19 12:44:14 +00:00
dan
2d07f26078 Changes to stat.test so that it works with file-format 4.
FossilOrigin-Name: f87bb283615847764d24943695990564f02b939e
2010-07-19 12:05:33 +00:00
dan
a69f7d5aa5 Re-introduce the prefix-search optimization of [feef1b15d6], which was lost in a reorganization of FTS3 code.
FossilOrigin-Name: d692434b4935e8e7858230af1c126b0be8203077
2010-07-19 11:16:36 +00:00
dan
bd0c001405 Enable previously failing tests in e_expr.test that pass following [3e5975aa3b].
FossilOrigin-Name: 3d59c54a39c4c3149bf01063a91c3db35ec84b31
2010-07-19 05:27:17 +00:00
drh
1dca1458cc Fix a parser bug that was causing the relative precedence of LIKE and <
operators to be incorrect.

FossilOrigin-Name: 3e5975aa3bb9df9e1f954bcce99384e0f13cb453
2010-07-19 02:30:33 +00:00
drh
dd7e9dba97 Improvements to the formatting of parse.out file from Lemon. Add the -r option
to Lemon to disable the state sorting, making debugging easier.

FossilOrigin-Name: a2eaf8294f6d3fb39548987d632e934bb5d71cc9
2010-07-19 01:52:07 +00:00
drh
f5c4e0f12a Add the -p option to lemon to cause conflicts resolved by precedence rules
to appear in the parse.out file.

FossilOrigin-Name: fb6a59b0a905ddea071948f9a527483a1b1b219f
2010-07-18 11:35:53 +00:00
dan
784141ea5c Add new test file e_expr.test.
FossilOrigin-Name: cbcf8abbb2cb3e603cc3da45075f6b076e5cad56
2010-07-17 18:44:49 +00:00
dan
3757556873 Do not run journal3.test with the inmemory_journal permutation.
FossilOrigin-Name: e1d228e992fe8da1fc5aef95d9bc8be62c6b46c7
2010-07-17 09:27:31 +00:00
dan
250ea1ad3e Fix a problem with wal4.test caused by changes in the previous checkin.
FossilOrigin-Name: 1218d3703ad23d01ce0d7cbcabdc9e0d864f8717
2010-07-16 11:10:25 +00:00
dan
304feffc3f Fix a test script bug uncovered by [a121cd80c5] that was causing shared_err.test to fail.
FossilOrigin-Name: d7b63a4c9fdd2acdb5829224b6189e7f2f6bedb9
2010-07-16 10:39:54 +00:00
drh
8ab58665bc Previous check-in [534aab837e] accidently reverted some
changes from [a121cd80c5].  This check-in restores those changes.

FossilOrigin-Name: abff795f38e33d778c8dd494a601bc029237da9e
2010-07-15 18:38:39 +00:00
drh
a4ced195db Optionally support shared-memory in /dev/shm or other tmpfs directory
using an unsupported compile-time option.

FossilOrigin-Name: 534aab837e5a34fd58963ab2b505bfbb9da2e8ee
2010-07-15 18:32:40 +00:00
dan
1e5de5a13d Changes to wal.c so that SQLite can read even if the WAL file is opened read-only, provided the wal-index (shm file) is opened read/write.
FossilOrigin-Name: 932d19da73c9673cdd4cc01289b17761c23d23cb
2010-07-15 18:20:53 +00:00
dan
7d4514a4e1 Handle the case where xShmMap returns SQLITE_BUSY.
FossilOrigin-Name: 75f5354876c4300a8e53fe551dc837dd383d1e38
2010-07-15 17:54:14 +00:00
dan
c74e4ef4c7 When creating a journal file on unix, attempt to create it with the same permissions as the associated database file.
FossilOrigin-Name: a121cd80c5ac94e5977bc3164d2500e0ea132fed
2010-07-15 14:59:37 +00:00
dan
473c1bf241 Change a comment inside a block of code in parse.y from C++ to C style.
FossilOrigin-Name: dea7d33b2d7d25280a31a2b9c1573f4292b81187
2010-07-15 11:14:21 +00:00
drh
f65bc9119c Fix a typo in a comment in os_unix.c.
FossilOrigin-Name: e1e7312580a8b19825b0c52fa8af6c9382f99f22
2010-07-14 20:51:34 +00:00
drh
a7d2db175b The expression list on the RHS of an IN operator can no longer be empty
because an empty expression list is now optimized out by changes in
check-in [c288ac644d0bf].  Therefore add ALWAYS() macros around tests
for the expression list being non-empty.

FossilOrigin-Name: fd130ae56c0e23f2d5b4a82f1a09e89ed7ae1e85
2010-07-14 20:23:52 +00:00
drh
ef5d9ec166 Additional test cases and evidence marks for the empty RHS bug on the IN
operator - ticket [80e031a00f45dca877]

FossilOrigin-Name: 6851c517ac7f80538aa5f3a1994fa1921c0ec3f4
2010-07-14 19:31:07 +00:00
drh
094430eb71 Make the result of an IN or NOT IN expression with an empty set on the
right-hand side always either false or true, respectively, even if the
left-hand side is NULL.  Ticket [80e031a00f45dc]

FossilOrigin-Name: c288ac644d0bfda2b9bc204dc86df8e74d4f6843
2010-07-14 18:24:06 +00:00
dan
e84322e503 Fix an assert() failure in wal2.test caused by messing with the contents of shared memory.
FossilOrigin-Name: 9f452514d96ab8d424eadc55c283c53fe831476d
2010-07-14 18:10:02 +00:00
dan
50833e32c1 Test the libaries response to read-only or unreadable database, WAL and wal-index files. If a WAL file cannot be opened in read/write mode, return SQLITE_CANTOPEN to the caller.
FossilOrigin-Name: 45bb84c6283d803fc29077fdc2d06fa50ec06a59
2010-07-14 16:37:17 +00:00
dan
ddb0ac4b9f On unix, try to create the *-wal and *-shm files with the same permissions as the associated database file.
FossilOrigin-Name: e5d180eed245437b61bfb257ee01e2571c93afe7
2010-07-14 14:48:58 +00:00
dan
9d08d640ac Add tests to pagerfault.test.
FossilOrigin-Name: b092f2a74bdc77c1f90ad3b4448cb68a891ecf63
2010-07-14 08:20:35 +00:00
dan
c385793495 Test that a corrupted WAL hash-table does not put the library into an infinite loop.
FossilOrigin-Name: c73886ed7497c0daf798c3b02ca6f5a1c2addde3
2010-07-14 07:06:47 +00:00
dan
b31a6afad0 Fix a typo in the IS_BIG_INT macro used by coverage test instrumentation.
FossilOrigin-Name: 5314ca3928dab1c76fa4ec5dbe110e3212c95e9f
2010-07-14 06:20:26 +00:00
drh
5d4feffe7d Fix the unix driver to return an I/O error if unlink fails for any reason
other than the file not existing in the first place.

FossilOrigin-Name: 90d73c66bfa880cdeb688b3016c8b1c58bfcf35f
2010-07-14 01:45:22 +00:00
drh
54e0536275 Remove the xShmOpen method from the VFS. Shared-memory is opened automatically
by a call to xShmMap.  Rename the xShmClose method to xShmUnmap.

FossilOrigin-Name: 2b68e50268412599576c86ae70b830d0388cb35c
2010-07-14 00:22:36 +00:00
drh
e11fedc589 Change the name of the xShmClose VFS method to xShmUnmap, everywhere.
FossilOrigin-Name: c2d27cf51d33e6f38bab37008d39074051f75274
2010-07-14 00:14:30 +00:00
drh
6e1f482824 Tweaks to the new shared-memory interface design - mostly comment changes.
FossilOrigin-Name: 6336de7aa96a6e1e68cc123e5d5f485d790d95a2
2010-07-13 23:41:40 +00:00
dan
0c1736026a Fix a typo in a comment in sqlite.h.in.
FossilOrigin-Name: 4a6c4b6605ddce59e586ab17024de5269191a823
2010-07-13 18:45:10 +00:00
dan
da9fe0c327 Changes so that the xShmOpen VFS method is no longer required. Its job can be done by the first call to xShmMap. Rename xShmClose to xShmUnmap.
FossilOrigin-Name: f4780bde62c6c19146d2723c101540b8db898d38
2010-07-13 18:44:03 +00:00
drh
2103245e75 Improved documentation for the SQLITE_ACCESS_* constants that are used
with the xAccess() method of the VFS.

FossilOrigin-Name: 3d4bb65f10ed0297f38e732ce57e5440cba8deef
2010-07-13 14:48:27 +00:00
dan
af6ea4e9f9 Add proposed interface change to sqlite.h.in. This commit breaks the build.
FossilOrigin-Name: 52577bb5e723d8de4fc609286666b581f8d9c746
2010-07-13 14:33:48 +00:00
dan
2acd4c6375 Fixes to the pcache10 and pcache90 permutations.
FossilOrigin-Name: 597d40fa529073123a50ae6afc762c59404f8f5f
2010-07-13 14:22:39 +00:00
dan
0cf408ff11 Fix problems with running the async.test script.
FossilOrigin-Name: 05ac2548652f3c9aa358289700b0b4c7fc22486d
2010-07-13 07:38:51 +00:00
shaneh
1f3e27b29e Updates to comments and code organization to reflect changes in os_unix.c;
Updated winShmLock() with logic changes from unixShmLock(); 
Modified IO error returns in winShmMap() to match those in unixShmMap();

FossilOrigin-Name: b73fe2754b68af4c76a1788aa18b93359720d1f1
2010-07-12 20:46:33 +00:00
dan
6d3eb82bc7 Fix test_stat.c so that it does not cause compilation errors if SQLITE_OMIT_VIRTUALTABLE is defined.
FossilOrigin-Name: bf4fc0888705108aab997e1cb491fc7f9c64c443
2010-07-12 18:12:41 +00:00
drh
3a0f13ff83 Fix makefiles so that they build sqlite3_analyzer again. Tweaks to comments
in test_stat.c.  Fix tclsqlite.c to build the sqlite3_analyzer again.

FossilOrigin-Name: e6cd15451d8c47bfc86d07565655920134b494fe
2010-07-12 16:47:48 +00:00
dan
d846c5e047 In the async-IO module, do not increment the open file-counter until after an "open file" event has been added to the event queue. Otherwise, an OOM may cause the system to increment the counter even though no file was successfully opened.
FossilOrigin-Name: 15a190dc5769beb53b89254543e744a964cd86ed
2010-07-12 12:22:29 +00:00
dan
599e9d21bb Changes so that the space-analyzer script works with 3.7.0.
FossilOrigin-Name: 86159cb3f00a380dc55be3affb01c433618f0683
2010-07-12 08:39:37 +00:00
shaneh
c3b84830bd Exclude a few more FTS modules from the "in memory" permutation test suite.
FossilOrigin-Name: 4e9d69cd5ac3cc4d12ccea3028cba73e3c3f2965
2010-07-09 19:32:28 +00:00
shaneh
decd09cbe5 Exclude fts3cov.test from the "in memory" permutation test suite to avoid a false positive.
FossilOrigin-Name: 6af6794cac5516f8cbc425cb8c73468ca371a1ad
2010-07-09 18:43:40 +00:00
shaneh
55897967cc Fix warning under MSVC.
FossilOrigin-Name: 0c32c4bbdd74297767dcf4ec4295f9cc72875af0
2010-07-09 12:57:53 +00:00
drh
519426aaf8 Reformat WAL code for clearer presentation. Update comments for correctness.
Add checks to ensure that corruption in shared-memory does not result in
an infinite loop.

FossilOrigin-Name: 40eaada7ec45e70bdf64d060051f24c5c5e3faf3
2010-07-09 03:19:07 +00:00
drh
a485cccd0a Add a test case to cover code that was left untested by the journal_mode
simplification.

FossilOrigin-Name: bcdddba4f011cf008d29918bcac59131007a8138
2010-07-08 19:19:51 +00:00
shaneh
afdc5fa5cc Fix test case numbering in backup_malloc.test and issue when running under Windows.
FossilOrigin-Name: aef26438523bccf1ea2c19205cd05799e4c69a1f
2010-07-08 18:32:18 +00:00
drh
c6b2a0ff99 Change the journal_mode pragma to remove the "default journal mode" concept.
The journal_mode pragma only effects currently attached databases and does 
not change the behavior of future attachments.

FossilOrigin-Name: e396184cd3bdb96e29ac33af5d1f631cac553341
2010-07-08 17:40:37 +00:00
shaneh
4677ddff7e Merged experimental crashsql() into trunk.
FossilOrigin-Name: 01b575ff1aa512f34be78f9d67b6caaf825e5820
2010-07-08 16:50:08 +00:00
shaneh
f2c0882baa Changes to get crashsql() working on Windows.
FossilOrigin-Name: 8a5811ea80e8415f9ba6b1d9390ed723840402c3
2010-07-08 16:30:44 +00:00
shaneh
ebffe41eaf Fix warning in test fixture code.
FossilOrigin-Name: 0bfcf3bcd77acab48344dde87cecb01e877f1a19
2010-07-08 16:22:51 +00:00
shaneh
504b2514c2 Fix test case number issue in walcrash.test.
FossilOrigin-Name: 6a46e64168705a31d86d29a60025f138a42c5b79
2010-07-08 16:22:05 +00:00
dan
f0ab1f15de Fix to lock5.test so that it runs with the inmemory_journal permutation on osx.
FossilOrigin-Name: 948bb54568b5eb26644db78e8cd62381bdc22bac
2010-07-08 14:59:01 +00:00
shaneh
caace9261a Fixed a few tests in pagerfault.test so they work correctly on Windows.
FossilOrigin-Name: ffbdd954a05c003a213069e39ad0655e77983666
2010-07-08 13:33:47 +00:00
dan
cb35460330 Changes to test scripts so that the "inmemory_journal" permutation works with [ef126e775a].
FossilOrigin-Name: f553c8ed04b4b2df8ff4929e0754e3ffd1d01ba4
2010-07-08 09:44:42 +00:00
dan
8700b1e52d Add tests to walmode.test.
FossilOrigin-Name: 5aa2bdb502d70ccbc249a6b38b8a07b91c4ccd26
2010-07-08 06:22:25 +00:00
shaneh
e2ad93173d Changes to os_win.c to have it simulate IO errors like os_unix.c.
FossilOrigin-Name: 0d53da9451fe016adc57c7c077fdbbbdb1c8d6ee
2010-07-08 03:13:33 +00:00
drh
2327f5a454 Make the initial salt values in the WAL header random values, not zero.
FossilOrigin-Name: baa5eddd0539342945c14a2793c2579efb7e3b26
2010-07-07 21:06:48 +00:00
drh
12c7e1aba3 Add the write-ahead log viewer/debugger tool to the tools/ folder.
FossilOrigin-Name: 0e4bd44682a252fb8af0df20f011b2b2364644b5
2010-07-07 20:38:26 +00:00
shaneh
aa9ecebc2d Fix issue in mallocI test script where db handle not released.
FossilOrigin-Name: dd59cea6c860ad11f1794f3689a60ca6dbfffea5
2010-07-07 20:00:04 +00:00
dan
9f4127d50a Add further test cases to savepoint.test.
FossilOrigin-Name: f825205dbf3ebbfba0add86aa41f477281a13b0e
2010-07-07 18:38:35 +00:00
dan
ab7e8d85a9 When rolling back a savepoint, reset the changeCountDone flag.
FossilOrigin-Name: fb62f4e3a7ceaa60ff6af2196ccf35b48759307e
2010-07-07 17:53:51 +00:00
shaneh
2ceced15ce When using MSVC to build test code, suppress the popup dialog when abort is called from the sqlite_abort() test function.
FossilOrigin-Name: 55d3d39f1c653627fc4c048e12fdd8c4444b6de7
2010-07-07 16:51:36 +00:00
shaneh
b638a3d3eb Fix some MSVC compiler warnings in the ASYNC extension.
FossilOrigin-Name: b951c8675df3e719c30a1dd94200b7c04252a3ea
2010-07-07 16:49:46 +00:00
dan
8fb66141ed Merge together another accidental fork.
FossilOrigin-Name: c41f04edb20c0c8fc8c49a53d42cc0b8a0ff7fe3
2010-07-07 16:23:36 +00:00
shaneh
100efa3f73 Fix test numbering issue in nan.test.
FossilOrigin-Name: 5bb1330fef559d47dc854089dedba45bf05db192
2010-07-07 16:20:38 +00:00
dan
7fb574ecf7 Do not make the SQLITE_FCNTL_SIZE_HINT call if an error has already occurred during transaction commit.
FossilOrigin-Name: e92de834a39be07da5f0848d7ec5f1f6dff902a5
2010-07-07 16:18:45 +00:00
shaneh
538fa0b716 Close the file handle before returning. TCL test script issue only.
FossilOrigin-Name: f4076d8567243174c023b7aa7ae9ca7f8f73e33b
2010-07-07 15:41:55 +00:00
shaneh
cce1b689f4 Fixed a new error introduced by last check-in of os_win.c. Updated xAccess() to support SimulateIOError().
FossilOrigin-Name: 8eefc287265443ec043bdab629597e79c9d22006
2010-07-07 14:45:40 +00:00
drh
e9187b4371 Remove two more testcase() macros that require 4GiB WAL files to hit.
FossilOrigin-Name: 16e18f2706e67210eae62edfb748758fd27f23d7
2010-07-07 14:39:59 +00:00
drh
09b5dbc519 Remove a testcase() macro that would require a 4GiB WAL to reach.
FossilOrigin-Name: 15f9c2713bdfd3d6c8d8d4298f101d128e39b99a
2010-07-07 14:35:58 +00:00
drh
f77e2ac27d Fix a compiler warning in PRAGMA journal_mode.
FossilOrigin-Name: d94269e60dbcb50b8a35f142c64ed013cc0045ac
2010-07-07 14:33:09 +00:00
drh
146151cd23 Avoid the need for a NEVER() from pager_write_pagelist() by passing in
pPager as an extra parameter.

FossilOrigin-Name: b3179379437dbcb1d8e7f1f8f631a3e7df1a5c9a
2010-07-07 14:19:13 +00:00
drh
51538e9d90 Merge together the accident fork.
FossilOrigin-Name: cdcf08cb18b1e290a4093454bebbd3e7094d6804
2010-07-07 14:00:17 +00:00
shaneh
7ea7259176 Fix minor issue in xAccess() method for Windows.
FossilOrigin-Name: 4bfd46f1db41009a1b925d61c6f074b933caa4ec
2010-07-07 13:58:11 +00:00
dan
f6c614715c Make sure the schema is loaded before preparing a "PRAGMA journal_mode" command. This helps it return meaningful results when it is the first command executed by a new database connection.
FossilOrigin-Name: ef126e775a02d69a9cab53028513e8799e1b6044
2010-07-07 13:54:28 +00:00
drh
3e8e7ecbc4 Add testcase macros to ensure that large-file cases are tested in WAL.
FossilOrigin-Name: 8156b57ac33161ae6dd8a9413127ecce3c9eae83
2010-07-07 13:43:19 +00:00
dan
60f9da7561 Run some fts3 tests as part of the "wal" permutation.
FossilOrigin-Name: 8657455a11d20dbf78247559670943a72541a09d
2010-07-07 11:42:59 +00:00
dan
78f1e53840 Change the async-IO extension to return SQLITE_IOERR_SHORT_READ when appropriate. This prevents a valgrind warning in the test suite.
FossilOrigin-Name: d9e3287900ae4aa7722ad0132bb8d6cd2755d3a6
2010-07-07 11:05:21 +00:00
dan
bd0e9070e5 Fix a problem with writing to databases larger than 2^32 bytes with WAL mode.
FossilOrigin-Name: b956ddca75d64ba662fa0b03b643822d836b6501
2010-07-07 09:48:44 +00:00
drh
4d9a7bf990 Remote the SQLITE_OMIT_GLOBALRECOVER macro - it is subsumed by
SQLITE_OMIT_DEPRECATED.  Add support to sqlite3_compileoption_used()
for SQLITE_OMIT_WAL.

FossilOrigin-Name: 21a2db908b9eeb7477fc9d8b2b54482db93cd76f
2010-07-07 01:52:31 +00:00
shaneh
186070588c Minor changes to Makefile.in to bring it more inline with main.mk.
FossilOrigin-Name: 5621862b0e2fc945ded51f5926a6b4c9f07d0ab7
2010-07-06 20:37:09 +00:00
shaneh
33d85c9cd7 Changes to pager1.test to support Windows.
FossilOrigin-Name: fce689ebe6165276598539779958407856e2f84f
2010-07-06 20:34:37 +00:00
shaneh
133ce560c6 Modified the xWrite() method on Windows to differentiate between IO and disk full error returns.
FossilOrigin-Name: ca4b7ffbd44937a02ae62d606f9e1eb767075c22
2010-07-06 20:33:47 +00:00
dan
ea5542d126 Do not do the *-closeallfiles test for notify2.test. It uses multiple threads.
FossilOrigin-Name: fb09152db879211986a7161a96a61da1425f79ef
2010-07-06 11:26:15 +00:00
dan
e1a2a990b8 Before calling Tcl_ExitThread() in a multi-threaded test, call Tcl_DoOneEvent() as many times as necessary to handle any queued events.
FossilOrigin-Name: b3399b40785d13754979203f15d71c95fec50282
2010-07-06 10:55:44 +00:00
drh
9e55d47d33 Reorder variable declarations in the previous check-in to avoid putting code
before declarations when not testing.

FossilOrigin-Name: d1fe8ab4a176180053d35300ad0540a27c6cd76d
2010-07-06 09:29:01 +00:00
dan
9859c427a2 Ensure the correct error code is returned if an attempt to parse a database schema made by an ATTACH statement fails.
FossilOrigin-Name: c272196115ab3926e56b6f4183ec127e3f98ef9c
2010-07-06 07:36:18 +00:00
drh
722a7e9ab3 Modify the VFS xAccess() method on winNT so that it returns false for
an exists test of a zero-length file.  This makes the windows VFS work
the same as the unix VFS.

FossilOrigin-Name: ec35f25403744f7441ac5ae1486b84d8ebc13e98
2010-07-05 21:00:43 +00:00
dan
db10f08282 Simplify the previous commit by removing the pagerCheckForOrDeleteWAL() wrapper.
FossilOrigin-Name: a1324d125e2dd7004eaf8680f5f832ef17285087
2010-07-05 19:13:26 +00:00
dan
3e875ef3b5 Allocate a buffer containing the full path-name to the associated WAL file when a pager is created. This saves having to construct a new buffer each time a new read-transaction is opened and SQLite checks for the existance of a WAL file.
FossilOrigin-Name: 3053a4ad15343a56efa430503797b77bb6d1e770
2010-07-05 19:03:35 +00:00
drh
8220da7b8b When rolling back page 1 from a journal, restore the "nReserve" setting
in case it has been corrupted by a prior crash.

FossilOrigin-Name: c0d124da88e84e68679c2f3f4b2b35c03aecc916
2010-07-05 17:43:32 +00:00
dan
92d516a221 Do not report an error if the open-file-count is not as it should be after running a multi-threaded test. The counter instrumentation is not thread-safe.
FossilOrigin-Name: ea80b21c881fabaec1da788588c35c6c9782dcbd
2010-07-05 14:54:48 +00:00
dan
3374f8aee4 Call Tcl_ExitThread() from within threads created using Tcl_CreateThread(). Not doing so causes notifier related errors on OSX.
FossilOrigin-Name: 684eae6623ef1d0336b7a734b17ed307c720b6f4
2010-07-05 12:54:08 +00:00
dan
6310990d54 Add any files specified as part of the QUICKTEST_INCLUDE environment variable to the set of test files run as part of "make test". Release testing uses this trick.
FossilOrigin-Name: a40a6e7df191ca10bc3aa504d374b9f5bfa33cbc
2010-07-05 05:54:55 +00:00
dan
eace527b8c Fix typos in permutations.test.
FossilOrigin-Name: b6600ecb4ee8e4d0fe5e8399450ef25b15071a91
2010-07-05 05:31:48 +00:00
dan
d53850e579 Do not run the memsubsys1.test script under the memsubsys1 permutation.
FossilOrigin-Name: 3a1a8c77a5c7b57755f18d84234faed1f16c2103
2010-07-03 19:08:19 +00:00
drh
2667be5e3f Remove the unused xRename() method from the sqlite3_vfs object.
Add better documentation on the xCurrentTimeInt64() method.

FossilOrigin-Name: 51ec0e5432dd6849b83a3d969a018482eb3bb083
2010-07-03 17:13:31 +00:00
dan
b3f4351f00 Further changes to test scripts so that the "inmemory_journal" permutation works.
FossilOrigin-Name: 50f2f7dfd64f610982525fd7a0dd7c1ade67bebb
2010-07-03 16:37:45 +00:00
dan
d506de0208 Fix a bug in the permutations.test script.
FossilOrigin-Name: 3b20ad03be55613d922d81aec5313327bf4098b9
2010-07-03 13:59:01 +00:00
dan
c844a0368a Fix an assert in pager.c. And various test cases that fail with the in-memory journal permutation.
FossilOrigin-Name: 622378dbe3941f06c717c1e272cd1190e4358428
2010-07-03 13:50:11 +00:00
dan
3f94b60961 Fix an assert in pager.c. And various test cases that fail with the in-memory journal permutation.
FossilOrigin-Name: 78fc35ff4b01d4a583009ec8b8bf876738ca7b92
2010-07-03 13:45:52 +00:00
drh
b0ab011dc5 Cherry-pick the correct changes out of the recent "mistake" branch while
omitting the bogus changes.

FossilOrigin-Name: 48bf309391c32e7860c293acd13f3dda14212d39
2010-07-03 12:31:34 +00:00
drh
40e459e041 Remove code accidently appended to pager.c.
FossilOrigin-Name: 7cbe175a69738499f9218ec56f1a39f040aea9dc
2010-07-03 12:26:33 +00:00
drh
bb810a9a7b Print the SQLite source_id() string when running speed tests.
FossilOrigin-Name: 6d7640edcd69a932556f86500aedbf14e75ba7de
2010-07-03 12:00:53 +00:00
dan
f43d7fce61 Fix an assert() in pager.c added by the previous commit. And various problems with test scripts in autovacuum and in-memory journal mode.
FossilOrigin-Name: 62a10101776b41236ff7bd08c8aa85765a43df7c
2010-07-03 10:00:00 +00:00
dan
fce218c5ad Do not attempt to open a WAL file for an in-memory or temporary database. Even if the database header suggests that it is a WAL database.
FossilOrigin-Name: 0fd809243652256d83ddcb58cf4890080654c667
2010-07-03 08:01:24 +00:00
dan
2411dea3ca Change code in OP_Rewind to avoid a valgrind warning following an error in the btree layer. This change does not fix any bug, just a warning.
FossilOrigin-Name: 4f62dbcfc96855f69e71d163bfc051d9db08cca9
2010-07-03 05:56:09 +00:00
drh
0eb77d0568 Fix a buffer overrun in the where.c. Problem detected by valgrind.
FossilOrigin-Name: 15bb62330681a5b2aad95a1d1fc9ab8f6f1bd6b9
2010-07-03 01:44:27 +00:00
shaneh
fd28639f12 Changes to os_win.c to have it return same error code as os_unix.c.
FossilOrigin-Name: 33b6f069d8059903312282962181839ff983e5c4
2010-07-02 19:49:38 +00:00
drh
cac29a67e9 Omit the OP_JournalMode opcode from the VDBE when SQLITE_OMIT_PRAGMA is
defined.

FossilOrigin-Name: 565ff65c61c85c9b2122b31bd9792692aa1e9cda
2010-07-02 19:36:52 +00:00
dan
5257af7dba Fix a bug in test_vfs.c causing an assert to fail. Changes to test code only.
FossilOrigin-Name: 336ce7d29767f76c4a92aa4bbc46d21e19871667
2010-07-02 19:04:59 +00:00
dan
84b9618231 Do not run the tests in notify3.test unless the unlock-notify API is available.
FossilOrigin-Name: 0d7fd6fe9deeddbec8dff1393beed126ae44c0ee
2010-07-02 18:58:01 +00:00
drh
a0b75da197 Take out the incomplete initializer on the constant "dummy" in
sqlite3VdbeGetOp().  Add a comment that the MSVC warning there should
be ignored.

FossilOrigin-Name: 452ccaa9080e42657b5f0908bf40dbd834cd39f6
2010-07-02 18:44:37 +00:00
shaneh
8a300f8095 Fix a couple more compiler warnings under MSVC.
FossilOrigin-Name: 26bc27e3f4c8a666f3358f73fc21eccdec3508f6
2010-07-02 18:15:31 +00:00
drh
0ab216a6b4 Fix compiler warnings in the proxy locking code.
FossilOrigin-Name: 26c7689cfedf03e65bcd51df68d128101ed2c1ec
2010-07-02 17:10:40 +00:00
drh
56c77ef853 Remove a couple of C++ style comments from pager.c.
FossilOrigin-Name: 4f12e8ebdea0451cb32188a4bb812ca702c63275
2010-07-02 17:07:42 +00:00
shaneh
5eba1f60fe Fix some warnings when compiling under MSVC.
FossilOrigin-Name: 708338773919fa024abbba55180654beb60e6d84
2010-07-02 17:05:03 +00:00
dan
230fd98dd3 Add initializers for the xShmXXX() members to an sqlite3_io_methods structure in journal.c. This doesn't fix any real problem, just prevents a compiler warning.
FossilOrigin-Name: dafb3577a2d5fbeebb17c8176af837f0aebf6ee5
2010-07-02 16:36:18 +00:00
drh
5fc4c689c3 Remove an unused call to sqlite3PageBegin() from pager_write(). Replace it
with an assert().

FossilOrigin-Name: 01c1278263fdd8454763be15bddd2558e720e6e0
2010-07-02 15:35:58 +00:00
dan
f412ee2ea4 Run tkt-9d68c883.test along with the other pager.c coverage tests. Add a test case to pager1.test.
FossilOrigin-Name: c6714b0dbdc782e721662ec166d9f161bc05c6df
2010-07-02 13:49:09 +00:00
dan
c396d4af58 Additional test cases to cover branches in pager.c.
FossilOrigin-Name: eddfb2b4062f8a8b907f0c7bc08a05c16692e900
2010-07-02 11:27:43 +00:00
drh
b2961b00f3 Add a NEVER to sqlite3PagerCommitPhaseTwo() because it is now no longer
possible to invoke that function without holding a RESERVED lock.

FossilOrigin-Name: 6ae7617298c70f8e03dd0ed73b8153d4871fb023
2010-07-02 01:18:12 +00:00
drh
32f2964390 If you delete a database file but not its *-wal file, then open the database
(thus creating a new empty database file) the *-wal file is automatically
deleted.

FossilOrigin-Name: 95c69dfbddaf4367cd699dfe8fcf8e06030c1f53
2010-07-01 19:45:34 +00:00
dan
d0b0d4dc23 Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: c6e75950928954fbb1590f952e3cdbcb0753b745
2010-07-01 19:01:56 +00:00
dan
89ccf4481b Add pager test cases. Change a condition in pager.c to NEVER().
FossilOrigin-Name: a8f6341d3b12d64ef56ed05226e3b4f183b8957d
2010-07-01 15:09:47 +00:00
dan
6b63ab47d7 Add further test cases. Fix an assert() in pager.c.
FossilOrigin-Name: 8e65c0e3dac400f6a0ec3b7494fba62c14ed6182
2010-06-30 10:36:18 +00:00
dan
3ad5fd2502 Do not call pager_open_journal() from within PagerBegin() if the connection is in exclusive-access mode. It will be called from within PagerWrite() just as it is for non-exclusive mode anyway.
FossilOrigin-Name: cdf2c5c2dd2e4404ffb85a680d31307afea266eb
2010-06-30 04:36:03 +00:00
dan
ba3cbf3d4b Add coverage test cases. Have sqlite3_backup_step() transform SQLITE_IOERR_NOMEM to SQLITE_NOMEM before returning.
FossilOrigin-Name: 5e19bc360e098ec06a72f4a86254d8e62e93ea57
2010-06-30 04:29:03 +00:00
dan
c8ce39723d Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: 008513ee6115f8d6f4b4e1428c1c638282b971a3
2010-06-29 10:30:23 +00:00
dan
d353331aba Add extra pager tests.
FossilOrigin-Name: 6b7e419ddc241f457dd69878f09f5c51c70aa379
2010-06-28 19:04:02 +00:00
dan
38e1a279c9 Fix some errors when compiling with SQLITE_OMIT_WAL.
FossilOrigin-Name: 3b68cb9c656db8c5c481199919a98f5764f7ebfa
2010-06-28 11:23:09 +00:00
dan
9c788140f7 Remove debugging code from test script.
FossilOrigin-Name: a85ae33246226801f88c1e377725c192711797cc
2010-06-28 11:06:53 +00:00
dan
1db95106ee Currently, if SQLite cannot find a table or index referred to by a query, it reloads the database schema from disk to see if the table or index has been added since the schema was cached in memory. Extend this behaviour to columns (which may have been added using ALTER TABLE) and fix some obscure cases related to tables and indexes (INDEXED BY, DROP TABLE etc.).
FossilOrigin-Name: 4932f22848b3d15a2b6dc5fa2cd69ce19182e2a4
2010-06-28 10:15:19 +00:00
drh
7750ab48f5 Make walIndexTryHdr() a private function. Fix an issue with SQLITE_MUTEX_NOOP.
FossilOrigin-Name: ec65bbd06bdd3bf16a742c5bb1fab0dce756c01a
2010-06-26 22:16:02 +00:00
drh
ff82894faa Suppress various compiler warnings.
FossilOrigin-Name: e82d008eaffb5522080cad6c69c1b194b78eadbd
2010-06-26 21:34:06 +00:00
drh
37f9918758 Fix two asserts on the scratch allocator to allow for up to two outstanding
scratch allocations per thread.

FossilOrigin-Name: f149b498b6ada3fc9f71ee104c351554c80c7f8a
2010-06-26 20:25:30 +00:00
drh
7d113eb0ab Suppress a couple uninitialized variable warnings.
FossilOrigin-Name: 29571e228cc85f7768c3ad57d0c7af96b5a54983
2010-06-26 20:00:54 +00:00
dan
4013130485 Add test file tkt-d11f09d36e.test.
FossilOrigin-Name: 6e469b63fab3cd63b23110aaceccfed0587c6a87
2010-06-26 19:03:30 +00:00
drh
afb15027e8 Remove a NEVER() in pager that can in fact be reached in obscure failure
cases.

FossilOrigin-Name: 42b8bd1c70d8dbbc4a59e2fdee8654c4fe84f979
2010-06-26 19:02:33 +00:00
dan
6ce60746c1 Fix a case where the doNotSyncSpill flag may remain permanently set following aIO error.
FossilOrigin-Name: 56c7d111bf7013be95a4c2a657a4861eee91db91
2010-06-26 17:15:07 +00:00
dan
273f3f0d1a When synchronous=NORMAL, use the same journal file format as with synchronous=FULL (i.e. multiple journal headers within the one journal). Fix for [d11f09d36e].
FossilOrigin-Name: 2eaf5ee0d9338de8a77fb3e06ad2f2b0daa6fcbe
2010-06-26 15:42:33 +00:00
dan
f9b4419d39 Further test cases for pager1.test and pagerfault.test.
FossilOrigin-Name: bfd563c4714d86805fa09ce9f4f807e5d502a99b
2010-06-25 19:09:48 +00:00
dan
52d6fc0eda Reduce the average (but not maximum) size of the allocations made as part of a checkpoint.
FossilOrigin-Name: 4a7fd91b7ab2c5d21fbac7f6f123820c8f4ec7f6
2010-06-25 16:34:32 +00:00
dan
bdf1e2437e Reduce the size of the large allocation (approx 8KB for every 4000 frames in the log) that occurs during checkpoint. Use the 'scratch' memory for this allocation instead of the general purpose allocation.
FossilOrigin-Name: 29887487ed549f97c3c9b37f852bae179b6ea9a9
2010-06-25 15:16:25 +00:00
drh
4a466d3ef3 Fix up a branch in sqlite3ValueFromExpr() so that we can achieve full
branch test coverage regardless of whether or not SQLITE_ENABLE_STAT2 is
used.

FossilOrigin-Name: af471ed79f539ff495f6d4cb3b69188c8af7ae3d
2010-06-25 14:17:58 +00:00
drh
d36f660d5b Change the name of the shared-memory file on windows from *-wal-index to
*-shm, for consistency with unix.

FossilOrigin-Name: 5995cb15080cfb707ddda501f975673f658106f7
2010-06-25 12:52:47 +00:00
dan
f544b4c4b8 Modify the merge-sort in wal.c so that it does not use recursion.
FossilOrigin-Name: daea6c054cee3564d8460d876b78a325ebc382dd
2010-06-25 11:35:52 +00:00
dan
ec6ffc1a6a Add test cases to pager1.test and pagerfault.test.
FossilOrigin-Name: 4941e437d2638f36ac8510d4a5b4c780afc798bb
2010-06-24 19:16:06 +00:00
drh
314f30db22 Revert to allowing a cache spill during writes of multiple pages within a
single sector as long as the spill does not require a journal sync and a
new journal header.

FossilOrigin-Name: 7d83fbae9802a56b2121d0775de54fccd743d971
2010-06-24 18:36:33 +00:00
dan
cfa800cb36 Modify ctime.test to work with SQLITE_THREADSAFE=2.
FossilOrigin-Name: c6db3b303182202a8b03512e448607bce71de914
2010-06-24 17:37:57 +00:00
drh
7cf4c7adf0 Disable memory-pressure induced cache spill during savepoint rollback.
FossilOrigin-Name: a55eb4c3e9fa4ea43b8f8182eb9e39138df03f52
2010-06-24 14:52:25 +00:00
dan
0a6052ec51 Add a coverage test to pagerfault.test.
FossilOrigin-Name: b58db67e972b5660e62a9b7daa2c1e87c3cf0a68
2010-06-24 13:24:26 +00:00
dan
dca321aed4 Add coverage tests. Remove a NEVER macro from pager.c, as the condition can now be true in wal mode.
FossilOrigin-Name: 7aac9ad6dd14b1c56eb8e4750ac769c6197c30bd
2010-06-24 10:50:17 +00:00
drh
a927e94e71 Make sure the wal-index reader detects an incorrect version number even if
it had to hold a lock in order to read the wal-index.  Also, expand and enhance
various comments in wal.c.

FossilOrigin-Name: 2e6a462cebc05bfd4648d26dd5ae70b68844aa5f
2010-06-24 02:46:48 +00:00
drh
cd28508e58 Fix and/or improve comments in wal.c. No code changes.
FossilOrigin-Name: ee9991be082202c6637adb47affc777e7917be04
2010-06-23 22:00:35 +00:00
dan
346e426753 Add test case for SQLITE_FULL errors to pagerfault.test. Remove a NEVER macro in pager.c that this hits.
FossilOrigin-Name: 3e9680c4c18140d083b24e05a21ea6792aef2487
2010-06-23 19:27:36 +00:00
drh
75e876be30 Include the SOURCE_ID value in the log messages output for corruption, misuse,
and CANTOPEN errors.

FossilOrigin-Name: 1727a81fed65bebfea43e0bda271584096d82785
2010-06-23 17:59:51 +00:00
drh
bd9676c19e Adjust the shared-memory locking range to account for the new version number
values in the wal-index header.

FossilOrigin-Name: a6dc0df304876b51cef5402b0e21330f10aabccf
2010-06-23 17:58:38 +00:00
dan
10f5a50e57 Add a version number to the wal-index header. If SQLite encounters a version number in either the wal or wal-index files that it does not understand, the operation is abandoned and SQLITE_CANTOPEN returned.
FossilOrigin-Name: 8d0f8a7f70d6fb42369411a934b30f8c8ca8322f
2010-06-23 15:55:43 +00:00
drh
b316cb22de Fix the xCurrentTimeInt64 interface on windows. It was off by a factor of 10.
FossilOrigin-Name: 51ef43b9f7db8fabf73d9c8a76dae6c275e50d58
2010-06-23 15:18:11 +00:00
drh
a64febe1d2 Simplifications to the pager_delmaster() implementation.
FossilOrigin-Name: 8bfbdec647d29f0eb103ba7deb9116c44193f2e1
2010-06-23 15:04:27 +00:00
drh
a715211820 Disable code used only by the codec when the codec is not deployed.
FossilOrigin-Name: 2c90276e340aa19d78d2e33c9f759f8eda0b82a3
2010-06-22 21:15:49 +00:00
dan
47ee386f06 Add codec support to wal mode.
FossilOrigin-Name: 393741eba353d5d242b8e3c96db3ea2b92228036
2010-06-22 15:18:44 +00:00
drh
242c4f7702 When trying to transition from journal_mode MEMORY to WAL, use OFF as an
intermediate journal mode.

FossilOrigin-Name: 4775b8f9a9d9b66fcd5abf3af111fcad249e662e
2010-06-22 14:49:39 +00:00
dan
68928b6c3e Some changes to test scripts related to codec enabled versions of sqlite.
FossilOrigin-Name: 85dd51a75c75b2a123744f646e04538e4e5d89b3
2010-06-22 13:46:43 +00:00
dan
3c3dd7b927 i
Fix problem with handling of -vfs option in tcl interface.

FossilOrigin-Name: 8f98e8b5a557db5759747f3aae5ea01fb0d1f455
2010-06-22 11:10:40 +00:00
drh
39cf51097f Minor tweaks to get the pager working for corner cases when the
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN flag is set.

FossilOrigin-Name: 82b38fca1aea345ade954517661145f1859e701c
2010-06-21 21:45:37 +00:00
drh
de3c301d63 Fix comment inside the pager_unlock() routine. Always close the master
journal file before trying to delete it.

FossilOrigin-Name: f820b815c9bff368eb1ccb850966a812151e610e
2010-06-21 20:19:25 +00:00
dan
0e986f51a4 Add test cases to pager1.test and pager2.test.
FossilOrigin-Name: cc9ddae6d72b214f52b8949e644b91f4ab340a28
2010-06-21 18:29:40 +00:00
drh
24f0f7716a Merge the experimental UNDELETABLE_WHEN_OPEN optimization into the trunk.
FossilOrigin-Name: ee0acef1faffd480fd2136f81fb2b6f6a17b5388
2010-06-21 12:47:41 +00:00
dan
e08341c664 Change things so that journal2.test works with ENABLE_ATOMIC_WRITE.
FossilOrigin-Name: a64d96db09ef2b7651fa4e98d3c7bf3ae5d3fe96
2010-06-21 12:34:29 +00:00
dan
153eda0aa4 Add further pager tests.
FossilOrigin-Name: 4104b175a8c3560a7680f3d2b54416821bb2e19d
2010-06-21 07:45:47 +00:00
dan
248af428ea Merge latest trunk change.
FossilOrigin-Name: f6d26e07b70965e332b1589804ca938593a5f432
2010-06-21 06:00:15 +00:00
dan
672b41beaa Fix jrnlmode2.test so that it works on systems where UNDELETABLE_WHEN_OPEN is defined.
FossilOrigin-Name: 59be370e52ec814c45efa6cbac45b6df94661b54
2010-06-21 05:40:49 +00:00
drh
19515c8da1 Fix an uninitialized variable in os_unix.c.
FossilOrigin-Name: 822a0283c6bc1c75001f3d1c528a4ff89c6b039c
2010-06-19 23:53:11 +00:00
dan
c548b78310 Fix an assert() failure that could occur if compiling with OMIT_SHARED_CACHE.
FossilOrigin-Name: 3e76a9f2c041a6d36614f540bb89588703d85925
2010-06-19 19:06:33 +00:00
dan
8ce49d6ac0 Change the name of IOCAP_SAFE_DELETE to IOCAP_UNDELETABLE_WHEN_OPEN. Have the xDeviceCharacteristics() method of the win32 VFS return this flag.
FossilOrigin-Name: 5a5ff4e3e4c707464f227907d0aefb8ef42180dd
2010-06-19 18:12:02 +00:00
dan
146ed78b78 Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: f5df83fd875073eee8e2269e87e2a8c9c7abc981
2010-06-19 17:26:37 +00:00
drh
7234c6d6f6 Change the unix VFS to always allocate shared-memory using a file in the
same directory as the database.  Otherwise, a chroot might cause different
processes to use different shared memory files resulting in database
corruption.

FossilOrigin-Name: 2241788bc85fbc48e9cfecb95fe0a858338e37cb
2010-06-19 15:10:09 +00:00
dan
de4996e2ee Add tests to pager1.test and pagerfault.test.
FossilOrigin-Name: 58c0b5bfed8c67cc3f2f4a6784d08c14e652c265
2010-06-19 11:30:41 +00:00
dan
1f4cb65a9e Add tests to pager1.test.
FossilOrigin-Name: 582fca89195af54e9668af249691654cfea63d04
2010-06-18 18:59:49 +00:00
dan
d956efebea Rearrange some code in OP_JournalMode to avoid incorrect returns from subsequent invocations of "PRAGMA journal_mode" following an IO error.
FossilOrigin-Name: ce0a4a9b5f981d066822a9ae63740c91b35bfc60
2010-06-18 16:13:45 +00:00
dan
83acd423a1 Change the implementation of the unix implementation of xAccess() so that it returns 0 (does not exist) to an SQLITE_ACCESS_EXISTS query on a file that exists but is zero bytes in size.
FossilOrigin-Name: 077b0e5bcd849130c8df373fc2134c4b44351882
2010-06-18 11:10:06 +00:00
dan
be5c10477c Apply [b9b11855e8] (the alternate fix to [fc62af4523]) to the trunk.
FossilOrigin-Name: 9a949a3a5c32b8bfbb94e10e18d050ec80a25553
2010-06-17 17:05:53 +00:00
dan
cd27cffa97 Merge trunk change [7c3a86b9c7].
FossilOrigin-Name: bd7bc4e0e28bc749034ff1a9290a69330c5d8ca4
2010-06-17 16:44:52 +00:00
dan
731bf5bcf8 A different fix to [fc62af4523]. When changing from journal_mode=PERSIST or TRINCATE to some other rollback mode, delete the journal file only if a RESERVED lock can be obtained on the database file first.
FossilOrigin-Name: b9b11855e8a9522309dd30e5256bb67d67e1353a
2010-06-17 16:44:21 +00:00
drh
0cf68fa4c6 Fix the tkt-fc62af4523.test to work around non-randomness of the
randomblob() function when in testing mode.

FossilOrigin-Name: 7c3a86b9c7e2a35ce755c32b38e911e79d843fad
2010-06-17 16:08:53 +00:00
dan
b70f82a7a5 Fix bug in journal2.test.
FossilOrigin-Name: c1e04f1d4e8575ebc41b5b4403dbfe3f60d578dc
2010-06-17 11:36:28 +00:00
dan
24827d0c0f Merge trunk updates with experimental branch.
FossilOrigin-Name: 9f6ea1de5abab0ca28688e257ddf03c66413cf6e
2010-06-17 10:52:07 +00:00
dan
7c6d618615 Do not delete the journal file in "PRAGMA journal_mode" commands. This fixes [fc62af4523].
FossilOrigin-Name: 1ec74591a93e8b27ad3ac739914a48a91972e82c
2010-06-17 10:42:06 +00:00
dan
cb0a7a7267 Add test case for [fc62af4523].
FossilOrigin-Name: cccd32c692057beb08a994102c6a10126ddeb937
2010-06-17 10:24:27 +00:00
dan
c002518074 Merge fix [f80c3f922a] with experimental changes.
FossilOrigin-Name: 20133e9ca98f5e6c42051ed3d65e4eb71d5366a5
2010-06-17 06:19:53 +00:00
drh
b28e59bbbb Bug fix: Only trust the database size number at offset 28 if the change
counter at offset 24 matches the version number counter at offset 92.
This prevents corruption in the case of two applications writing to the
database where one is an older version of SQLite and the other is a newer
version.

FossilOrigin-Name: f80c3f922a114e738613955a939db46cf0847038
2010-06-17 02:13:39 +00:00
dan
2a321c7547 Experimental change: On systems where it is not possible to unlink a file while one or more processes has it open (i.e. not unix), avoid closing the journal file each time the database is unlocked and reopening it at the start of each transaction.
FossilOrigin-Name: bede8c8a148fb9be5ffbf38df7fa733e35cc68c3
2010-06-16 19:04:23 +00:00
dan
53f04f3b3f Add extra test cases to pager1.test.
FossilOrigin-Name: ad3209572d0e6afe5c8b52313e334509661045e2
2010-06-16 12:30:10 +00:00
dan
b0ac3e3a17 Fix a memory leak that can occur in os_unix.c if an IO error occurs within the xUnlock method.
FossilOrigin-Name: 6c5c04eea1f0e8d61883ee8675c249fbf895dc01
2010-06-16 10:55:42 +00:00
dan
a4a9095ec0 Rationalize a common pattern in tcl test cases into proc do_multiclient_test.
FossilOrigin-Name: efe44564983f115017658dd8a130226366d42bab
2010-06-15 19:07:42 +00:00
dan
2fce9ab3f8 Fix a problem introduced into lock2.test by the previous commit.
FossilOrigin-Name: c1c9f6fa9d75df740e577dbc5e6a24b91ad2bdd0
2010-06-15 18:00:06 +00:00
dan
e91a54e1be Add test file pager1.test, containing tests of inter-process locking in non-wal mode.
FossilOrigin-Name: 6e43eed9310bae9ca5e91f8fd9eafc45a16b7019
2010-06-15 17:44:47 +00:00
dan
3a3803b61a Run extra iterations in wal3.test to ensure test coverage.
FossilOrigin-Name: ea80cbe51e33d6a3f15a4ad56f360fc5323866de
2010-06-15 14:21:17 +00:00
dan
422309c447 Merge in [2c5e48a485].
Merge in [2c5e48a485].
Merge in [2c5e48a485].

FossilOrigin-Name: 03c0f4fd9cbb655477b63ebbb6af7822715644aa
2010-06-15 14:06:06 +00:00
drh
cc3af5156e Minor tweaks to the interface documentation - adding hyperlinks.
FossilOrigin-Name: 07b2fdd1cebbdbde5098a662eea65a0c9e8b5442
2010-06-15 12:09:06 +00:00
drh
ffca43014b Updates to comments and testcase() macros in wal.c.
FossilOrigin-Name: 4d90cc0bc07e791b2838fc384866bd5c2282f681
2010-06-15 11:21:54 +00:00
dan
0626dfc3dc Changes to the way tcl test scripts work. No changes to production code.
FossilOrigin-Name: 2c5e48a4855e2ec4572697c8fcfe4433e302ef33
2010-06-15 06:56:37 +00:00
drh
f886b4f851 Fix an error in the walfault.test script introduced by the previous check-in.
FossilOrigin-Name: a2b9374fc6f0aba2d465d432e1124bd957aab548
2010-06-14 18:06:20 +00:00
drh
6b017cc6d4 Move the xShmMap method to in between xShmLock and xShmBarrier, since it seems
to fit in there logically.

FossilOrigin-Name: 58dfd83d8b7905391e2a06bb918ffa209c6de6b5
2010-06-14 18:01:46 +00:00
drh
6f72beb20c Merge the experimental shared-memory mmap-by-chunk changes into the trunk.
FossilOrigin-Name: f295e7ed5f04f6b8bffdaff8b565be3836ce4e80
2010-06-14 17:09:53 +00:00
dan
9785fc9510 Add the new xShmMap (formerly xShmPage) to os_win.c.
FossilOrigin-Name: 13e7a8242206bca4b5bf356ef074e66474d39609
2010-06-14 16:16:33 +00:00
dan
188019153d Remove xShmGet/Size/Release from the sqlite3_vfs structure. Change the name of xShmPage to xShmMap. Remove some code that is now unused from os_unix.c and some of the test VFS implementations.
FossilOrigin-Name: fc0cabc15c97dde6a852b4f07df6d30f1d2c04bc
2010-06-14 14:07:50 +00:00
dan
ad3cadd8b2 Update some comments in wal.c. No code changes.
FossilOrigin-Name: 1ce9c92bffa5d7f8431c005b29d698b0f5b95875
2010-06-14 11:49:26 +00:00
dan
d60bf11036 Change the interface to internal function walGetHash() to make it easier to follow.
FossilOrigin-Name: 5e8e2e978ea48ce4ad93a936c838934f33d665df
2010-06-14 11:18:50 +00:00
dan
067f3165d8 Add the xShmPage method to the "crash" vfs in test6.c.
FossilOrigin-Name: 1008f536440840da7d56c01ec147a25295fd1fd4
2010-06-14 10:30:12 +00:00
dan
5d656852f7 Add some fault-injection tests to improve coverage.
FossilOrigin-Name: 37b26d125f4b1d8e75bb38800fefd145611f94aa
2010-06-14 07:53:26 +00:00
dan
4280eb3004 Fix some problems with handling IO errors on the experimental branch.
FossilOrigin-Name: eade8bc238df580412f5cf1b91a91532ae671e46
2010-06-12 12:02:35 +00:00
dan
13a3cb82ce Experimental change to the xShmXXX parts of the VFS interface.
FossilOrigin-Name: ca68472db01c14a899892007d1cbaff5e86ae193
2010-06-11 19:04:21 +00:00
drh
0b9b4301b8 Refactor and simplify the logic used to change journalmode.
FossilOrigin-Name: 95cc3f6fdec5494560c3cd4439d06870d1c62506
2010-06-11 17:01:24 +00:00
drh
5130c31b0c Adding original art for the new SQLite logo.
FossilOrigin-Name: af353bd89e5ec89f113d217225cc59cbc8373d64
2010-06-10 16:25:55 +00:00
drh
23e35723a7 Add the SQLITE_TESTCTRL_PGHDRSZ verb for sqlite3_test_control() used to get
the size of pcache headers for testing purposes.

FossilOrigin-Name: 5d694f04fecf47ca325e108d463c24f42def55d5
2010-06-10 14:07:40 +00:00
drh
007d6c3a36 Update the test VFS in test_journal.c so that it implements the
xCurrentTimeInt64 method.

FossilOrigin-Name: ec3b4a7e5d3d7bd737d356b8a09ce94f8f0f8ce0
2010-06-10 10:51:27 +00:00
dan
026e598d0f Store the MemPage structure in memory following, instead of preceding, the page data for cached pages. This reduces the likelihood of a corrupt database page image causing SQLite to read past the end of a buffer.
FossilOrigin-Name: 0ce42e76654d9ba52dac74c940d38b17866016ba
2010-06-10 06:53:26 +00:00
drh
0350c7fa26 Remove a condition that must always be true. Replace it with an assert().
FossilOrigin-Name: 7abcd54ec09e8025193d1e0ea57775051d823801
2010-06-10 01:07:42 +00:00
dan
3ccd20a7a9 Fix test script problems causing errors in the "inmemory_journal" permutations.
FossilOrigin-Name: ea05b7f929e4696175dbc3ded36dba8ed2a6b575
2010-06-09 19:01:02 +00:00
dan
199100e2cd When restarting (wrapping) a log file, set all unused aReadMark[] slots to READMARK_NOT_USED instead of 0. Setting them to 0 does not cause a problem, but may cause SQLite to obtain and release a few more file locks than would otherwise be necessary.
FossilOrigin-Name: 0797b10c0cc08ae38e26685d1f8331e37d428781
2010-06-09 16:58:49 +00:00
dan
6ac4339439 Fix for ticket [f973c7ac31].
FossilOrigin-Name: 6eb058dda8d5f87b02378d8efd821fe64a525dcc
2010-06-09 15:47:11 +00:00
drh
db7f647e41 Shift the meaning of aReadMark[] back so that +1 offset from mxFrame is
removed.  Add the new READMARK_NOT_USED value (0xffffffff) instead of
zero to signal an aReadMark[] that is not in use.

FossilOrigin-Name: c576827d55c156572b76cf7063e9f253ca6e7403
2010-06-09 14:45:12 +00:00
dan
15651f61df Simpler fix for the race condition also fixed by [7c102c7b5f]
FossilOrigin-Name: 3c2de820034e01c2e939bd90a05a58159f60df50
2010-06-09 11:28:43 +00:00
dan
e4bddc1fab Close database opened by tester.tcl when it is sourced in all.test. Because test scripts are now run in slave interpreters, this connection was not being closed by the first script run as it was previously.
FossilOrigin-Name: b072e9f69ad5ec68b8ec4c716556070001f885e0
2010-06-08 15:50:53 +00:00
dan
c60f10a27f Changes to wal3.test to support small default cache size settings. And builds that create autovacuum databases by default.
FossilOrigin-Name: ac4cc2574bafce30390a34f13228380d017791cb
2010-06-08 15:16:10 +00:00
dan
7df6c2c04b In os_unix.c, call munmap() to unmap a shared-memory region prior to closing the associated file descriptor.
FossilOrigin-Name: 95cc976f1520bdaedd8f93b0e9fbef94e4e2c8cc
2010-06-07 19:26:54 +00:00
dan
430e74cd9b Change all.test, quick.test and permutations.test so that they use a separate interpreter for each test file.
FossilOrigin-Name: 7c33eb5a5add8fe76dd412ecab5b6ff8cd78a98d
2010-06-07 17:47:26 +00:00
dan
c1a60c51dc Refactor some of the global variables and commands used by tester.tcl.
FossilOrigin-Name: c2edf8e17f874d0ca4e94b75575bf6e14eea1f05
2010-06-07 14:28:16 +00:00
dan
23f719207f Add a couple of extra coverage tests for wal.c.
FossilOrigin-Name: cfe60254df50f086014b115f1a2d9e31c85d67fd
2010-06-07 06:11:39 +00:00
dan
640aac48f3 Add further test cases for the logic in sqlite3WalBeginReadTransaction().
FossilOrigin-Name: a49713db39d0d6940b368206d4e669aa69aa1fe5
2010-06-05 19:18:59 +00:00
dan
eb8cb3a851 Clarify the purpose of a test for a race-condition in walIndexReadHdr().
FossilOrigin-Name: c041c6a9786bc9ebb82527f7a2c96d255aec927f
2010-06-05 18:34:26 +00:00
dan
493cc590b6 Remove a condition from sqlite3WalRead() that is unreachable as of the changes to clear entries out of the wal-index hash tables on transaction or savepoint rollback.
FossilOrigin-Name: 394204735a842b04b677cca20485b1578e475d4c
2010-06-05 18:12:23 +00:00
dan
0626bd65fb Mark a condition in wal.c as ALWAYS().
FossilOrigin-Name: 3fe0cc784ac586358c08f87fba458dfbb5eec6f2
2010-06-05 14:42:57 +00:00
dan
ef4ee8f274 Add extra coverage test cases for wal.c. No changes to production code.
FossilOrigin-Name: f9d4ae0e8cc5d32c52eb78799f7959dd236ea9de
2010-06-05 11:53:34 +00:00
dan
3cac5dc9bc Clarify an assert in sqlite3WalExclusiveMode().
FossilOrigin-Name: 255850699ddbf4aad8cc3223aefbada35daa0703
2010-06-04 18:37:59 +00:00
dan
0153a9bc04 Remove an unnecessary branch from wal.c.
FossilOrigin-Name: 8e54786c9a0c5c399f228f56c73271f84d75694b
2010-06-04 17:16:52 +00:00
dan
0dc7b74fbe Add an English language error message to corresponding to SQLITE_PROTOCOL. "locking protocol".
FossilOrigin-Name: ca327e32cfe1633f2c9d3f058e411f108aaa2b3c
2010-06-04 15:59:58 +00:00
dan
23dced35ea Add test for the code that detects an inconsistent pair of wal-index headers to wal2.test.
FossilOrigin-Name: 157feba10f7ac01eecf79715c44bb16c98958280
2010-06-04 12:22:35 +00:00
dan
d764c7de25 If an attempt to sync the database file as part of a checkpoint fails, do not update the shared "nBackfill" variable. Otherwise, another process could wrap the log and overwrite content before it is synced into the database.
FossilOrigin-Name: b813233d7604a5fd91e1af91d5d812032eec700a
2010-06-04 11:56:22 +00:00
dan
83f42d1b38 Fix a problem where an SQLITE_BUSY in the checkpoint code was being treated as an IO error (abandoning, instead of just limiting, the checkpoint).
FossilOrigin-Name: 02c4040ce2b4c970b3dee09f7c9ad5a2a3a9aa49
2010-06-04 10:37:05 +00:00
dan
d03f523d3b Fix another problem in test_vfs.c.
FossilOrigin-Name: df7d59899ceb2743764b0433cb68f4bc33f16344
2010-06-03 19:10:08 +00:00
dan
961ff45104 Have test_vfs.c simulate IO errors in xShmLock.
FossilOrigin-Name: fcbf7cf189506e43fc2f0820aedffb195038d3a9
2010-06-03 18:20:19 +00:00
drh
05cb5b244b Performance fix for winShmClose().
FossilOrigin-Name: ed7774de04978803e979580240148eba1de9166d
2010-06-03 18:02:48 +00:00
dan
db9d981a8d Add extra tests for removing elements from wal-index hash tables as part of a rollback.
FossilOrigin-Name: af3e598ad9315a4642dd8fa098dfdbd727770aed
2010-06-03 16:58:46 +00:00
dan
459564f43f Delay opening the sub-journal until SQLite actually needs to write data to it.
FossilOrigin-Name: c43deb33ae5f191ea2e054181759beeeb9ea71bf
2010-06-03 12:35:28 +00:00
drh
f83dc1ef3f Remove global variables when compiled with SQLITE_OMIT_WSD
FossilOrigin-Name: dd10a547f10364058025c48b28d8fd240bf46aff
2010-06-03 12:09:52 +00:00
dan
1f55e28d2a Enhancements to test_vfs.c and walfault.test.
FossilOrigin-Name: ac0de2f39e948f3b00e96eebf56ebee70472020d
2010-06-03 09:25:10 +00:00
dan
40ad9d2870 If an error (OOM or SQLITE_FULL error) occurs while executing an SQL statement and a statement-transaction is automatically rolled back as a result, if a second error occurs during the statement rollback do a full transaction rollback instead. Otherwise the client can be left with an inconsistent cache.
FossilOrigin-Name: eb80ddc665132c607c258b59131025a296269dad
2010-06-03 09:17:38 +00:00
dan
8e64db2b09 If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on.
FossilOrigin-Name: 91cb08ffb6332a142542c012b58aa49206ee5704
2010-06-03 09:01:11 +00:00
drh
2d37e1cfb9 When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint
should fail.

FossilOrigin-Name: c6eb0a27270df69018576232d8f97c16d63d8f6e
2010-06-02 20:38:20 +00:00
dan
6e6bd5658f Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file.
FossilOrigin-Name: 6b4aed6aae7dc9e92807d27375cbe1e83c15841b
2010-06-02 18:59:03 +00:00
dan
10ec894c3a If an error occurs while writing frames to the log to commit a transaction, do not mark the pages as clean in the cache. Otherwise, the subsequent rollback does not roll them back (leaving the client to continue with a cache that makes it appear that the transaction was committed - inconsistent with the database on disk).
FossilOrigin-Name: cb571c1b71a37b3a10d640987c77a6eec508235d
2010-06-02 17:15:24 +00:00
shaneh
2796d336d2 Added implementation of vfslog_time() for Windows testing.
FossilOrigin-Name: b3109f85bde0b24bfbcfe6c0f7bbe973be196c1d
2010-06-02 16:40:54 +00:00
shaneh
a1a889ecb4 Updated wal2.test for windows testing.
FossilOrigin-Name: c3606f3985e4ab38479409c13f3a01d1be4f8189
2010-06-02 16:39:53 +00:00
drh
c11895b808 Make sure the directory used by os_unix.c for shared-memory files is always
the same, regardless of individual client permissions and environment
variable settings.

FossilOrigin-Name: f97bd520f06a16c61ccdd9ebeda7e138896b9ac2
2010-06-02 15:59:05 +00:00
drh
38933f2c11 When walTryBeginRead() encounters an I/O error trying to set a lock
(as opposed to SQLITE_BUSY) be sure to propagate that error back up
the call stack.

FossilOrigin-Name: aa2c2b67a7f50c97a44cca1af5c437bf5410869c
2010-06-02 15:43:18 +00:00
drh
aab4c02e47 Changes to make WAL more robust against SHM locking failures and OOM errors.
FossilOrigin-Name: ebf4041383c3cdddb5861960359abd209d4a1028
2010-06-02 14:45:51 +00:00
drh
048129dcb9 In the rowhash.test, make sure global variables are cleared prior to use.
FossilOrigin-Name: 28efe0a40405567f3eaf334b6603282d5adac792
2010-06-02 14:43:30 +00:00
drh
0af3723478 Undo one of the "const" markers from the previous check-in because the
value needs to be changable, even if it is not actually ever changed in
the current implementation.

FossilOrigin-Name: c24ac3563f46fc6bcf7e45ee171afd3ae7d2faa8
2010-06-02 12:58:22 +00:00
dan
558814f8c6 Add some 'const' markers to static data that is really constant.
FossilOrigin-Name: e7073e23b80e7cae0c76d42f014ee9b2d40a8f2f
2010-06-02 05:53:53 +00:00
drh
8b3cf82ddf The shared-memory used by WAL on linux now really is shared memory in /dev/shm.
On other unix flavors, the file is in a temporary directory rather than in the
same directory as the database.

FossilOrigin-Name: fc18c4aadb908c3b6f9b6481a2efca6a0daadc64
2010-06-01 21:02:51 +00:00
dan
0235ab9944 Changes to the way faults are injected into xShmXXX VFS calls.
FossilOrigin-Name: 716d99f3929b466c7a17190e0f18de8ab0e7f1fa
2010-06-01 19:15:18 +00:00
dan
a4bc123f83 Change the OOM and IO error test cases in walfault.test so that each test case runs both types of error simulation.
FossilOrigin-Name: b627e1536822bb7e3ef91867661a53be0efc13ef
2010-06-01 17:46:38 +00:00
dan
9971e710e4 Delay the decision to restart the log file until data is actually ready to be written to the log file (instead of at the start of a write transaction).
FossilOrigin-Name: b1abfaaf5309cc0d0dda4fb2c237862c8cf83261
2010-06-01 15:44:57 +00:00
drh
964bf9c8bb The incremental checkpoint feature is not perfect yet, but it is working
well enough to merge it into the trunk.

FossilOrigin-Name: 1d3e569e59ba89cc167f0a48951ecd82f10322ba
2010-06-01 15:24:29 +00:00
dan
98fbfe703e Merge with [15abbc3416].
FossilOrigin-Name: f4b9003a2d3db88eaabb4b291e6cea8e8ea6ff51
2010-06-01 14:30:49 +00:00
dan
f9b7671066 If an attempt to get a read-lock on the WAL fails with SQLITE_BUSY_RECOVER, call the busy-handler at the btree level.
FossilOrigin-Name: ce64496509a213c08c9dedae2a7a456b393d22e5
2010-06-01 14:12:45 +00:00
drh
f77bbd9fc5 Fix a bug introduced by the previous check-in but only seen if
SQLITE_ENABLE_EXPENSIVE_ASSERTS is turned on.

FossilOrigin-Name: 9c9ec8994bf701249efce6c7bb911de4525808c8
2010-06-01 13:17:44 +00:00
drh
9c1564779e Fix an off-by-one boundary-value issue in walCleanupHash().
FossilOrigin-Name: f039552e6330b6a04281748f985b41937f534bd0
2010-06-01 12:58:41 +00:00
dan
72bcac9ca7 Do not hold the shared-memory mutex in os_unix.c if returning NULL.
FossilOrigin-Name: 9622dd468c8914262e9d8bd8dbca9e22ec6ee75c
2010-06-01 11:08:56 +00:00
dan
e877296705 If the checkpoint fails to obtain an exclusive lock on one of the read-lock bytes, do not consider this an error.
FossilOrigin-Name: 9e95e35728cf69a0ae50e774d7f6c71a41b17d97
2010-06-01 10:44:28 +00:00
dan
5f3f3b2962 Fixes to the test cases in wal2.test.
FossilOrigin-Name: cd5fbcbce8b55f24c0bf349b179c26e333ff7172
2010-06-01 07:51:47 +00:00
drh
181e091ff3 Comment edits and cleanup in wal.c. No functional code changes.
FossilOrigin-Name: e8e666ab8273f5db5265f0773b39820f75b6df1a
2010-06-01 01:08:08 +00:00
drh
ad24581e65 Attempt to get the filectrl.test script running.
FossilOrigin-Name: e46a8f2b752f86c4d8942ee125210516026ffdc2
2010-06-01 00:28:42 +00:00
drh
b29ad8502e Fix os_unix.c so that it will compile and build on a Mac.
FossilOrigin-Name: bc707c83e5f9849d9d201d695d0d071ca9ed93cb
2010-06-01 00:03:57 +00:00
drh
61e4acecf4 Fix issues with locking_mode=EXCLUSIVE in WAL.
FossilOrigin-Name: 8deba0cebd135a18da68530fab9e7d19dc21ddcb
2010-05-31 20:28:37 +00:00
drh
4b82c387c9 Add an "isInit" field in the wal-index header that must be non-zero for
a valid header.  Use this to detect an uninitialized wal-index.

FossilOrigin-Name: a16fde190183d1ae252d1aa305b23fdb88c603dc
2010-05-31 18:24:19 +00:00
drh
15d6809222 Fix an inconsistent #ifdef in wal.c. Fix os_unix.c so that it does not allow
moving an SHM lock directly exclusive to shared without going through unlocked.

FossilOrigin-Name: 552658da2845c2323167b6c7db6e5c00090f280c
2010-05-31 16:56:14 +00:00
dan
d0aa34277f Avoid dropping the checkpoint lock after a recovery run as a precursor to a checkpoint operation.
FossilOrigin-Name: cc25cfa04630a43c1de26f2dbdacbe46c110a2b5
2010-05-31 16:41:53 +00:00
dan
3dee6da994 Zero the checkpoint header as the last step of successful WAL recovery. Avoid an unnecessary lock/unlock in WalBeginReadTransaction.
FossilOrigin-Name: db3509c55dfe288650b803622e3a0828c6e59aea
2010-05-31 16:17:54 +00:00
drh
20e1f08e0b Get the new xShmLock interface design working on os_win.c.
FossilOrigin-Name: 149a7082e266edf0dc25c23823a9e240f5285215
2010-05-31 16:10:12 +00:00
drh
18b7f604aa Make sure WAL alway requests enough shared-memory space.
FossilOrigin-Name: 138f128317b6695530ca3fde7be4cdf22548cd22
2010-05-31 14:39:31 +00:00
drh
4222441dee Remove the tests that enable tracing based on the existance of the "vdbe_*"
files when in SQLITE_DEBUG mode.

FossilOrigin-Name: cdbb4e7ca7ec27e7e80dd66529d9d565f547887a
2010-05-31 14:28:25 +00:00
dan
dcb1169fb7 Update another test case in wal.test.
FossilOrigin-Name: 99fde69e61d12cf95b47db70c4647c30be2d2f45
2010-05-31 14:18:45 +00:00
drh
a2ac9df170 Change WAL test cases to account for the improved concurrency in the new
checkpoint logic.

FossilOrigin-Name: 2d6f2485053e6d2a67abda9a80693ca68f4556d2
2010-05-31 13:11:49 +00:00
drh
34116eaf6a Do not fail a checkpoint just because active readers prevent backfill.
FossilOrigin-Name: 9aa4243e0cedcc9204994d04af1b2b7a80c048bd
2010-05-31 12:30:52 +00:00
drh
c74c333408 Add WALTRACE() macros to help with debugging and analysis.
FossilOrigin-Name: 765c33181a7b9d99b452ce750d69f217b3c81a5d
2010-05-31 12:15:19 +00:00
dan
1beb939db1 Another minor fix to checkpoint on the WAL branch.
FossilOrigin-Name: 853f1e3f7720af2723b552bdf086bb106e6e93fe
2010-05-31 12:02:30 +00:00
dan
0cc5b2b6c6 Fix a bug in checkpoint introduced by [181ceb32ea].
FossilOrigin-Name: b499dbc88a67b4200b5f527be88be4ac90f7043f
2010-05-31 11:39:53 +00:00