Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Cherrypick the [d4f6437f8d] change so that SQLITE_FCNTL_SIZE_HINT is always honored and never undone by memory pressure on windows. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
67ff8d27f6aa6e0beff1f6b72a997b30 |
User & Date: | drh 2011-08-25 01:58:17.932 |
Context
2011-08-25
| ||
03:38 | Fix an file separator character issue with test_quota.c that was causing it to fail on windows. (check-in: ddb8d3e80d user: drh tags: trunk) | |
01:58 | Cherrypick the [d4f6437f8d] change so that SQLITE_FCNTL_SIZE_HINT is always honored and never undone by memory pressure on windows. (check-in: 67ff8d27f6 user: drh tags: trunk) | |
01:42 | Add the sqlite3_quota_file() interface to test_quota.c. (check-in: 2b7fe8e5b7 user: drh tags: trunk) | |
Changes
Changes to src/os_win.c.
︙ | ︙ | |||
1347 1348 1349 1350 1351 1352 1353 | return SQLITE_OK; } case SQLITE_FCNTL_CHUNK_SIZE: { pFile->szChunk = *(int *)pArg; return SQLITE_OK; } case SQLITE_FCNTL_SIZE_HINT: { | > | > > > > | | | > > | | 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 | return SQLITE_OK; } case SQLITE_FCNTL_CHUNK_SIZE: { pFile->szChunk = *(int *)pArg; return SQLITE_OK; } case SQLITE_FCNTL_SIZE_HINT: { winFile *pFile = (winFile*)id; sqlite3_int64 oldSz; int rc = winFileSize(id, &oldSz); if( rc==SQLITE_OK ){ sqlite3_int64 newSz = *(sqlite3_int64*)pArg; if( newSz>oldSz ){ SimulateIOErrorBenign(1); rc = winTruncate(id, newSz); SimulateIOErrorBenign(0); } } return rc; } case SQLITE_FCNTL_PERSIST_WAL: { int bPersist = *(int*)pArg; if( bPersist<0 ){ *(int*)pArg = pFile->bPersistWal; }else{ pFile->bPersistWal = bPersist!=0; |
︙ | ︙ |
Changes to test/pager1.test.
︙ | ︙ | |||
2414 2415 2416 2417 2418 2419 2420 2421 2422 | hexio_write test.db2-journal 24 00000000 sqlite3 db2 test.db2 execsql { PRAGMA integrity_check } db2 } {ok} } finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 | hexio_write test.db2-journal 24 00000000 sqlite3 db2 test.db2 execsql { PRAGMA integrity_check } db2 } {ok} } #------------------------------------------------------------------------- # Test that a database file can be "pre-hinted" to a certain size and that # subsequent spilling of the pager cache does not result in the database # file being shrunk. # catch {db close} forcedelete test.db do_test pager1-32.1 { sqlite3 db test.db execsql { CREATE TABLE t1(x, y); } db close sqlite3 db test.db execsql { BEGIN; INSERT INTO t1 VALUES(1, randomblob(10000)); } file_control_sizehint_test db main 20971520; # 20MB execsql { PRAGMA cache_size = 10; INSERT INTO t1 VALUES(1, randomblob(10000)); INSERT INTO t1 VALUES(2, randomblob(10000)); INSERT INTO t1 SELECT x+2, randomblob(10000) from t1; INSERT INTO t1 SELECT x+4, randomblob(10000) from t1; INSERT INTO t1 SELECT x+8, randomblob(10000) from t1; INSERT INTO t1 SELECT x+16, randomblob(10000) from t1; SELECT count(*) FROM t1; COMMIT; } db close file size test.db } {20971520} # Cleanup 20MB file left by the previous test. forcedelete test.db finish_test |