mistachkin
7b7f224c62
Revise and vastly simplify the Win32 SHM file locking semantics, allowing all new tests to pass.
...
FossilOrigin-Name: d0997b0f5bc9a9869684e39a17a01c430d6383c8b31d6c00ea17a5eac15bc6f0
2017-11-09 22:23:50 +00:00
mistachkin
95a05aae67
Add an assert() in the Win32 VFS.
...
FossilOrigin-Name: 22e58330461736ca22d6f4d7eab897a3597de2e7434a6f4a474f0f0d7f964281
2017-11-09 20:37:37 +00:00
mistachkin
bcb416a9ff
Get read-only SHM file tests passing on Win32.
...
FossilOrigin-Name: abef05353554e72f4d08aff562b87ff8530e8537a79e58d831205ea8c46eed07
2017-11-09 20:02:44 +00:00
mistachkin
9f4aad446b
Further corrections to read-only SHM file handling on Win32.
...
FossilOrigin-Name: 43c311701bdf1202918cd46fa6133a11458e0ef8ddb09e46290a231083f395ce
2017-11-09 18:53:51 +00:00
mistachkin
a515065649
Corrections to Win32 lock detection for SHM files.
...
FossilOrigin-Name: 3a91be975daee65c3e1199855613066015d5df8ad44ababdef31d1c698b5e746
2017-11-09 18:21:51 +00:00
mistachkin
8a6fa5d41c
Corrections to the Win32 porting changes on this branch.
...
FossilOrigin-Name: 0b26a5a26d700e20eea5ebbd620af0af6f2d61c652cfca5b8563267588cb2be6
2017-11-09 17:29:18 +00:00
mistachkin
4a9ff91852
Make it possible to use OSTRACE for multi-process testing.
...
FossilOrigin-Name: 0a7d416c4c43632725dc89cda8667cd9726b5152ee4692e4d0c9e2031e60cfb4
2017-11-09 17:29:04 +00:00
mistachkin
4ff8431fd1
Initial work on porting the changes on this branch to Win32.
...
FossilOrigin-Name: 3738bfd0c0eadb10eea58954af5052cb6ce164059f3aacfe65d7da6a400c63c7
2017-11-09 16:30:55 +00:00
drh
9214c1efe8
Extra comments on the sqlite3OsShmMap() call in walBeginUnlocked(). No
...
changes to code.
FossilOrigin-Name: 033ee92bf4d5dc57f5cb8fd02d1154ae06f2d3261d214e7191a82c70c8ffebf7
2017-11-08 19:26:27 +00:00
drh
7316960cec
Turns out that SQLITE_READONLY_CANTLOCK is an historical name that must
...
be preserved. So make a new SQLITE_READLOCK_CANTINIT name instead.
FossilOrigin-Name: 04974a8b5c0e6748216226006ca9125529c8bb2a7a9df4641217eb1413426a14
2017-11-08 17:51:10 +00:00
drh
7e45e3a5d7
Change the name of SQLITE_READONLY_CANTLOCK to SQLITE_READONLY_CANTINIT.
...
FossilOrigin-Name: 6d7f94faa7e6de62f82bc6cac019508a9c1ffd6fa1d14f52fa93e9c06afdd32f
2017-11-08 17:32:12 +00:00
dan
6c9d8f640b
Update an assert in wal.c.
...
FossilOrigin-Name: 94527b897bac66d100ca92161f18b6f0e0768dd77ebcb06e3fb106f0e0e380ee
2017-11-07 21:25:15 +00:00
dan
08ecefc5b1
Handle the race condition that may occur if another process connects and then
...
checkpoints and truncates the wal file while a readonly-shm client is building
its heap-memory wal-index.
FossilOrigin-Name: 5a6703fc3f2174b3e9a624c7272ae013b73c42d6c97ffa62b58553efdb54e3bc
2017-11-07 21:15:07 +00:00
dan
f12ba66cf8
On unix, if the *-shm file cannot be opened for read/write access, open it
...
read-only and proceed as if the readonly_shm=1 URI option were specified.
FossilOrigin-Name: ba718754fa5ab8596cb84b751051de98afa2706fe6c5df39ad6d925d790719ee
2017-11-07 15:43:52 +00:00
dan
ab54838452
Add further test cases for the new code on this branch. And a couple of fixes.
...
FossilOrigin-Name: 71af9acb227a91d9ad8798c9d0b12d6967e863d050f5cb1fddb45f25ee1f47db
2017-11-06 19:49:34 +00:00
dan
cbd3321978
Add further tests for the code added on this branch.
...
FossilOrigin-Name: a6716fcde38b28b8a03b40f9d16f78a57ec20f60cf391ff553692641cb7f0d3f
2017-11-04 21:06:35 +00:00
dan
11caf4f4b7
In cases where a readonly_shm client cannot take the DMS lock on the *-shm
...
file, have it parse the wal file and create a wal-index to access it in heap
memory.
FossilOrigin-Name: 18b268433d739486eac1b04947bd418655e4bc56e8dc63ffa558aa4552a32e30
2017-11-04 18:10:03 +00:00
dan
dea5ce36f5
Avoid locking shm-lock WAL_READ_LOCK(0) during recovery. Doing this allows
...
recovery to proceed while a readonly_shm connection in unlocked mode has an
ongoing read transaction.
FossilOrigin-Name: 5190d84a296b7cf716ef43bf7b6d4d351ef1a4d650de37dc01a5ab333da7c05d
2017-11-02 11:12:03 +00:00
dan
92c02da33e
If a readonly_shm connection cannot map the *-shm file because no other
...
process is holding the DMS lock, have it read from the database file only,
ignoring any content in the wal file.
FossilOrigin-Name: ce5d13c2de69b73378637d4f7e109714f7cd17bf1d1ad995e0be442d517ed1b3
2017-11-01 20:59:28 +00:00
dan
514c4b7e5d
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 985bfc992950625a45a7521bf4c8438cd0170de974dff976968be158ac5922a9
2017-11-01 07:06:41 +00:00
dan
176b2a916b
Fix a race condition in os_unix.c that might allow a client to use a *-shm
...
file corrupted by a power failure if another client fails between locking the
*-shm file and truncating it to zero bytes.
FossilOrigin-Name: d655bfabd110999b6808073c334869c5b6a8334df56811df883e47e56d3f1cbb
2017-11-01 06:59:19 +00:00
drh
183f0aa6c4
Fix a minor comment typo. No changes to code.
...
FossilOrigin-Name: 5f79e6d9c3d44b0cc7cf805429006f7b29a69e8d863b58472172a56b29a7bb4e
2017-10-31 12:06:29 +00:00
drh
9d9c41e25e
Remove unnecessary NEVER() and ALWAYS() conditionals.
...
FossilOrigin-Name: 1c80c75d4be2f3d44fb18bb4c07eccac2aba79b688215a741317dfc47dc7c2ce
2017-10-31 03:40:15 +00:00
drh
07dae088b9
Clarify some comments describing the WAL index file. No changes to code.
...
FossilOrigin-Name: 3be3aad9ecbe33060cfa9c6059b9206ed221d1fd72a69c355a9387f9f4e075e7
2017-10-30 20:44:36 +00:00
drh
eba21f9eb2
Improve the performance of the LIKE operator by using strcspn() to aid
...
wildcard matching.
FossilOrigin-Name: 37284d4e8f501a37c582aa899419a3dfe0932e2a8e2ef2fdf59addd1d3cdacb4
2017-10-30 18:49:11 +00:00
drh
fca23557fe
Reactivate query flattening when the result set of the outer query has
...
no function calls or subqueries. This is a partial reversal of
check-in [c9104b59]. Co-routines are still preferred if the outer
query has a complex result set, but for simple results sets, query flattening
is used. Check-in [4464f40ccd7] is completely backed
out due to this change.
FossilOrigin-Name: d17ef7d153058f7332b3fec421ade42c67e26b06f36fc1629e6799537a5afc5f
2017-10-28 20:51:54 +00:00
drh
0503f2acfa
Fix a Pager ref-count leak in the sqlite_dbpage virtual table.
...
FossilOrigin-Name: c063bb04da77d6847e4e254b6bb939c860e781382e34ddff8e0454d9db7552e2
2017-10-27 18:24:11 +00:00
mistachkin
b4bab90b31
Handle the Ctrl-C event for the shell on Win32.
...
FossilOrigin-Name: c8aaf37117ed4a23bbd15dc481788735efcb77bff98be423eca3521c0a9270de
2017-10-27 17:09:44 +00:00
drh
47d9f83982
Enhance the min/max optimization so that it works with indexes on
...
expressions.
FossilOrigin-Name: 6caec9082b3ad6d3f89f6291084a8f5c80f296630e2e94bc764389ac1a47a833
2017-10-26 20:04:28 +00:00
drh
7ea11066b6
Extra ".selecttrace" output following aggregate analysis. No changes to
...
production builds.
FossilOrigin-Name: 6fbf74ab3189b9cb20cf7cc8db0226eb935a8eab477cc83b8390492fcf2f1f76
2017-10-26 18:43:19 +00:00
dan
ab04eff809
Fix an error in the previous commit on this branch.
...
FossilOrigin-Name: f71dfee06ce1e0eee760cfca19482bdec7729d6c7d28f10f4cfd21e1f92a04b0
2017-10-26 17:34:50 +00:00
dan
9181ae990a
Instead of extra locks, use F_GETLK to ensure that readonly_shm clients cannot
...
connect to a wal-mode database if there are no writers.
FossilOrigin-Name: 5492f457dc7cc5c416de4b4e61e84bd2f10b4e6ce54011b7a60feb47f629c923
2017-10-26 17:05:22 +00:00
drh
b5039fb7d3
Use extra locks to prevent a readonly_shm=1 process from connecting to a
...
WAL-mode database if there are no writers.
FossilOrigin-Name: 35d979082b4ab36d6a8975f8f15a50e69f46b72a173164d2b353377b9f758bd8
2017-10-25 23:28:13 +00:00
drh
3cd8aaa748
Fix the sqlite3_dbpage virtual table so that it can read and write from
...
any attached database.
FossilOrigin-Name: d4f893e1ae53a0445939ea2920af87d21dd36270494381028b2eaebe5c188f18
2017-10-25 19:18:33 +00:00
drh
b5d013edd1
Do not reference the ioctl() system call in the unix backend unless it
...
is actually needed by the Batch Atomic Write extension. This should allow
the build to work on VxWorks.
FossilOrigin-Name: adfa7ed2de3e833fff65935455e71236a59602aaf7b97ece667ab300dca9f673
2017-10-25 16:14:12 +00:00
dan
952523f618
Fix a problem in the incr-blob code causing a new cursor to be opened for
...
every sqlite3_blob_reopen() call.
FossilOrigin-Name: 41ef34a1f0650c50cacb203665cd9d57db53a49c979bf0d5a78937517f763a2c
2017-10-24 17:28:25 +00:00
drh
efeaec365f
Updates to test procedures so that they all work with encryption. No changes
...
to the core SQLite code.
FossilOrigin-Name: 0481330756e861de8e1eb7136e7dca2f333b2a82377949d2e0eba401af7d73dd
2017-10-23 16:34:07 +00:00
dan
21cd29ab15
Avoid passing a NULL value as the second argument to memcpy().
...
FossilOrigin-Name: 58e5bb491bc0e28412ca188ba8fbe94adc67b5b1e9d7c112c36011400528d577
2017-10-23 16:03:54 +00:00
drh
aa79e434f1
Merge all the enhancements and bug fixes from trunk, since none are
...
destablizing. Call this the second beta.
FossilOrigin-Name: fb3ee1b7cac09e4950e4f48b44c277e4f391cb6c8f069644732d2389ca653da4
2017-10-21 17:17:17 +00:00
drh
6fe3733ba9
Catch and avoid a 16-bit integer overflow on the number of columns in a
...
common table expression. This fixes a problem found by OSS-Fuzz. The
test case is in TH3.
FossilOrigin-Name: 6ee8cb6ae5fd076ec226bb184b5690ba29f9df8cfaef47aaf13336873b4c1f6c
2017-10-21 14:17:31 +00:00
drh
316ab93e2c
Remove unnecessary "#if SQLITE_MAX_COLUMN". SQLITE_MAX_COLUMN is always
...
defined.
FossilOrigin-Name: 6ec82acde81a46a75ed5931fc7dd813f2523753106ad7b8f0b544b9da9824d5a
2017-10-21 13:29:26 +00:00
dan
f2f72a0f9f
Take extra care to avoid an OOB read caused by a corrupt b-tree page.
...
FossilOrigin-Name: 04925dee41a21ffca9a9f9df27d8165431668c42c2b33d08b077fdb28011170b
2017-10-19 15:17:38 +00:00
dan
af124faf3e
Avoid using snprintf as a member variable of a struct in sqlite3ext.h. This
...
causes problems on OSX.
FossilOrigin-Name: b066d5a69f5391b2cef04b4e288f7d33e63a4ff54325b7e9fbd6aa42529c2f3c
2017-10-18 14:29:36 +00:00
drh
f30d345241
Fix the ".check" command of the command-line shell to return 1 (error)
...
rather than 2 (exit) on a test failure.
FossilOrigin-Name: e2af0cc6ef5fafc785b8b73f51995901f50822972dcfb632494e22402596186d
2017-10-17 13:44:46 +00:00
drh
989d7278b0
Improved comments, including a typo fix, on the whereLoopCheaperProperSubset()
...
function.
FossilOrigin-Name: 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3cb2f
2017-10-16 11:50:12 +00:00
drh
47b1d68f25
In the query planner, do not consider index X to be a proper subset of
...
index Y if X is a covering index but Y is not.
FossilOrigin-Name: ee31c04353cd75ea4bbadee2994c30d3808b696a4f680187502d104902988a5d
2017-10-15 22:16:25 +00:00
drh
96a206fa10
Improved ability to generate stand-alone program using TCL and SQLite by
...
compiling with -DTCLSH_INIT_PROC=name to cause the TCL interpreter to be
initialized using procedure name(). Both sqlite3_analyzer and testfixture
are now built this way.
FossilOrigin-Name: d65d1f297ddb07b799ff5b2e560575fc59a6fa74c752269cc85ab84348fb7da4
2017-10-13 20:14:06 +00:00
drh
1df6470d35
When compiling with SQLITE_TEST, extra options are available on the
...
"DB version" command for controlling the internal state of the SqliteDb
object, for testing purposes.
FossilOrigin-Name: bf86478d9c6b899d6441e80cf9d17b58731e5d354e31b11f0d58a798f6fab896
2017-10-13 15:56:26 +00:00
drh
c318f730a4
Move some test logic out of tclsqlite.c and into auxiliary test_*.c files.
...
This is a work in progress.
FossilOrigin-Name: 95b7687fed75b32a62a0c62d397f4f543bf40095e13c22e15938d5dcfd71fcdf
2017-10-13 15:06:06 +00:00
drh
88dd668942
Add the sqlite_dbpage virtual table (enabled using SQLITE_ENABLE_DBPAGE_VTAB).
...
Make that virtual table and dbstat available to the command-line shell.
FossilOrigin-Name: eaeeb09d4aa1dbccdd2488af8461e2a8c8a53d92c63fd56330be041ad72a9e4a
2017-10-12 20:37:20 +00:00