Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge trunk fixes to swarmvtabfault.test and the lsm extension into this branch. No changes to core SQLite code. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | branch-3.21 |
Files: | files | file ages | folders |
SHA3-256: |
f632b87002a7ee9be569aacb5ce85bb7 |
User & Date: | dan 2017-10-23 20:20:42.832 |
Context
2017-10-23
| ||
21:24 | On the amalgamation package, enable the sqlite_dbpage virtual table so that the .dbinfo command works in the CLI. (check-in: 54b90b4f27 user: drh tags: branch-3.21) | |
20:20 | Merge trunk fixes to swarmvtabfault.test and the lsm extension into this branch. No changes to core SQLite code. (check-in: f632b87002 user: dan tags: branch-3.21) | |
20:17 | In the 'swarmvtabfault' test module, make sure to close the database handle prior to raising an error from the 'not found' callback script. (check-in: f317037b31 user: mistachkin tags: trunk) | |
16:34 | Updates to test procedures so that they all work with encryption. No changes to the core SQLite code. (check-in: 0481330756 user: drh tags: branch-3.21) | |
Changes
Changes to ext/lsm1/lsm_shared.c.
︙ | ︙ | |||
336 337 338 339 340 341 342 | const int nUsMax = 100000; /* Max value for nUs */ int nUs = 1000; /* us to wait between DMS1 attempts */ int rc; /* Obtain a pointer to the shared-memory header */ assert( pDb->pShmhdr==0 ); assert( pDb->bReadonly==0 ); | < < < | | < > > | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | const int nUsMax = 100000; /* Max value for nUs */ int nUs = 1000; /* us to wait between DMS1 attempts */ int rc; /* Obtain a pointer to the shared-memory header */ assert( pDb->pShmhdr==0 ); assert( pDb->bReadonly==0 ); /* Block for an exclusive lock on DMS1. This lock serializes all calls ** to doDbConnect() and doDbDisconnect() across all processes. */ while( 1 ){ rc = lsmShmLock(pDb, LSM_LOCK_DMS1, LSM_LOCK_EXCL, 1); if( rc!=LSM_BUSY ) break; lsmEnvSleep(pDb->pEnv, nUs); nUs = nUs * 2; if( nUs>nUsMax ) nUs = nUsMax; } if( rc==LSM_OK ){ rc = lsmShmCacheChunks(pDb, 1); } if( rc!=LSM_OK ) return rc; pDb->pShmhdr = (ShmHeader *)pDb->apShm[0]; /* Try an exclusive lock on DMS2/DMS3. If successful, this is the first ** and only connection to the database. In this case initialize the ** shared-memory and run log file recovery. */ assert( LSM_LOCK_DMS3==1+LSM_LOCK_DMS2 ); rc = lsmShmTestLock(pDb, LSM_LOCK_DMS2, 2, LSM_LOCK_EXCL); if( rc==LSM_OK ){ |
︙ | ︙ |
Changes to test/swarmvtabfault.test.
︙ | ︙ | |||
20 21 22 23 24 25 26 | finish_test return } proc fetch_db {file} { forcedelete $file sqlite3 dbX $file | > | > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | finish_test return } proc fetch_db {file} { forcedelete $file sqlite3 dbX $file set rc [catch { dbX eval { CREATE TABLE t1(a INTEGER PRIMARY KEY, b) } } res] dbX close if {$rc!=0} {error $res} } forcedelete test.db1 forcedelete test.db2 do_execsql_test 1.0 { ATTACH 'test.db1' AS aux; CREATE TABLE aux.t1(a INTEGER PRIMARY KEY, b); INSERT INTO aux.t1 VALUES(1, NULL); INSERT INTO aux.t1 VALUES(2, NULL); INSERT INTO aux.t1 VALUES(9, NULL); DETACH aux; |
︙ | ︙ |