Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 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) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0fb9af1d6e20bf25511c6d2097937cc1 |
User & Date: | drh 2007-03-29 18:19:52.000 |
Context
2007-03-29
| ||
18:41 | 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) (check-in: 0229cba696 user: shess tags: trunk) | |
18:19 | 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) (check-in: 0fb9af1d6e user: drh tags: trunk) | |
17:57 | Make sure the strftime() date conversions put in leading zeros correctly. Ticket #2276. (CVS 3749) (check-in: e853067ec4 user: drh tags: trunk) | |
Changes
Changes to src/os.c.
︙ | ︙ | |||
72 73 74 75 76 77 78 | int sqlite3OsLockState(OsFile *id){ return id->pMethod->xLockState(id); } int sqlite3OsCheckReservedLock(OsFile *id){ return id->pMethod->xCheckReservedLock(id); } int sqlite3OsSectorSize(OsFile *id){ | | > | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | int sqlite3OsLockState(OsFile *id){ return id->pMethod->xLockState(id); } int sqlite3OsCheckReservedLock(OsFile *id){ return id->pMethod->xCheckReservedLock(id); } int sqlite3OsSectorSize(OsFile *id){ int (*xSectorSize)(OsFile*) = id->pMethod->xSectorSize; return xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE; } #ifdef SQLITE_ENABLE_REDEF_IO /* ** A function to return a pointer to the virtual function table. ** This routine really does not accomplish very much since the ** virtual function table is a global variable and anybody who |
︙ | ︙ |
Changes to src/os.h.
︙ | ︙ | |||
69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /* If the SET_FULLSYNC macro is not defined above, then make it ** a no-op */ #ifndef SET_FULLSYNC # define SET_FULLSYNC(x,y) #endif /* ** Temporary files are named starting with this prefix followed by 16 random ** alphanumeric characters, and no file extension. They are stored in the ** OS's standard temporary file directory, and are deleted prior to exit. ** If sqlite is being embedded in another program, you may wish to change the ** prefix to reflect your program's name, so that if your program exits ** prematurely, old temporary files can be easily identified. This can be done | > > > > > > > | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /* If the SET_FULLSYNC macro is not defined above, then make it ** a no-op */ #ifndef SET_FULLSYNC # define SET_FULLSYNC(x,y) #endif /* ** The default size of a disk sector */ #ifndef SQLITE_DEFAULT_SECTOR_SIZE # define SQLITE_DEFAULT_SECTOR_SIZE 512 #endif /* ** Temporary files are named starting with this prefix followed by 16 random ** alphanumeric characters, and no file extension. They are stored in the ** OS's standard temporary file directory, and are deleted prior to exit. ** If sqlite is being embedded in another program, you may wish to change the ** prefix to reflect your program's name, so that if your program exits ** prematurely, old temporary files can be easily identified. This can be done |
︙ | ︙ |
Changes to src/os_os2.c.
︙ | ︙ | |||
739 740 741 742 743 744 745 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int os2SectorSize(OsFile *id){ | | | 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int os2SectorSize(OsFile *id){ return SQLITE_DEFAULT_SECTOR_SIZE; } /* ** This vector defines all the methods that can operate on an OsFile ** for os2. */ static const IoMethod sqlite3Os2IoMethod = { |
︙ | ︙ |
Changes to src/os_unix.c.
︙ | ︙ | |||
2349 2350 2351 2352 2353 2354 2355 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int unixSectorSize(OsFile *id){ | | | 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int unixSectorSize(OsFile *id){ return SQLITE_DEFAULT_SECTOR_SIZE; } /* ** This vector defines all the methods that can operate on an OsFile ** for unix. */ static const IoMethod sqlite3UnixIoMethod = { |
︙ | ︙ |
Changes to src/os_win.c.
︙ | ︙ | |||
1462 1463 1464 1465 1466 1467 1468 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int winSectorSize(OsFile *id){ | | | 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 | ** ** SQLite code assumes this function cannot fail. It also assumes that ** if two files are created in the same file-system directory (i.e. ** a database and it's journal file) that the sector size will be the ** same for both. */ static int winSectorSize(OsFile *id){ return SQLITE_DEFAULT_SECTOR_SIZE; } /* ** This vector defines all the methods that can operate on an OsFile ** for win32. */ static const IoMethod sqlite3WinIoMethod = { |
︙ | ︙ |
Changes to src/pager.c.
︙ | ︙ | |||
14 15 16 17 18 19 20 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** ** @(#) $Id: pager.c,v 1.306 2007/03/29 18:19:52 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" #include "os.h" #include "pager.h" #include <assert.h> #include <string.h> |
︙ | ︙ | |||
1432 1433 1434 1435 1436 1437 1438 | if( rc==SQLITE_OK ){ rc = pager_delmaster(zMaster); } sqliteFree(zMaster); } /* The Pager.sectorSize variable may have been updated while rolling | | | 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 | if( rc==SQLITE_OK ){ rc = pager_delmaster(zMaster); } sqliteFree(zMaster); } /* The Pager.sectorSize variable may have been updated while rolling ** back a journal created by a process with a different sector size ** value. Reset it to the correct value for this process. */ pPager->sectorSize = sqlite3OsSectorSize(pPager->fd); return rc; } /* |
︙ | ︙ |