Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make the TEMP file tables use the page size set for the main database. Ticket [b80eeab588c4]. Also copy over the changes from apple-osx check-in [7c3bede3f2]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5dcfb0c9e420d27e54a299b3991b9877 |
User & Date: | drh 2010-01-26 01:25:27.000 |
Context
2010-01-28
| ||
19:56 | Tweaks for consistency to the SEE and CEROD API declarations in sqlite3.h. (check-in: 299f74567b user: shaneh tags: trunk) | |
2010-01-26
| ||
01:25 | Make the TEMP file tables use the page size set for the main database. Ticket [b80eeab588c4]. Also copy over the changes from apple-osx check-in [7c3bede3f2]. (check-in: 5dcfb0c9e4 user: drh tags: trunk) | |
2010-01-22
| ||
15:48 | Fix two similar problems in fts3 that meant that an OOM error could cause a memory leak. (check-in: 701ef64b3d user: dan tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 | ** Make sure the TEMP database is open and available for use. Return ** the number of errors. Leave any error messages in the pParse structure. */ int sqlite3OpenTempDatabase(Parse *pParse){ sqlite3 *db = pParse->db; if( db->aDb[1].pBt==0 && !pParse->explain ){ int rc; static const int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_TEMP_DB; | > | < > > > > | < | 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 | ** Make sure the TEMP database is open and available for use. Return ** the number of errors. Leave any error messages in the pParse structure. */ int sqlite3OpenTempDatabase(Parse *pParse){ sqlite3 *db = pParse->db; if( db->aDb[1].pBt==0 && !pParse->explain ){ int rc; Btree *pBt; static const int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_EXCLUSIVE | SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_TEMP_DB; rc = sqlite3BtreeFactory(db, 0, 0, SQLITE_DEFAULT_CACHE_SIZE, flags, &pBt); if( rc!=SQLITE_OK ){ sqlite3ErrorMsg(pParse, "unable to open a temporary database " "file for storing temporary tables"); pParse->rc = rc; return 1; } db->aDb[1].pBt = pBt; assert( db->aDb[1].pSchema ); if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){ db->mallocFailed = 1; } sqlite3PagerJournalMode(sqlite3BtreePager(pBt), db->dfltJournalMode); } return 0; } /* ** Generate VDBE code that will verify the schema cookie and start ** a read-transaction for all named database files. |
︙ | ︙ |
Changes to src/os.c.
︙ | ︙ | |||
108 109 110 111 112 113 114 | const char *zPath, sqlite3_file *pFile, int flags, int *pFlagsOut ){ int rc; DO_OS_MALLOC_TEST(0); | | | | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | const char *zPath, sqlite3_file *pFile, int flags, int *pFlagsOut ){ int rc; DO_OS_MALLOC_TEST(0); /* 0x7f3f is a mask of SQLITE_OPEN_ flags that are valid to be passed ** down into the VFS layer. Some SQLITE_OPEN_ flags (for example, ** SQLITE_OPEN_FULLMUTEX or SQLITE_OPEN_SHAREDCACHE) are blocked before ** reaching the VFS. */ rc = pVfs->xOpen(pVfs, zPath, pFile, flags & 0x7f3f, pFlagsOut); assert( rc==SQLITE_OK || pFile->pMethods==0 ); return rc; } int sqlite3OsDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync){ return pVfs->xDelete(pVfs, zPath, dirSync); } int sqlite3OsAccess( |
︙ | ︙ |
Changes to test/pagesize.test.
︙ | ︙ | |||
184 185 186 187 188 189 190 191 192 193 | execsql {SELECT count(*) FROM t1} } 38 do_test pagesize-2.$PGSZ.16 { execsql {DROP TABLE t1} ifcapable {vacuum} {execsql VACUUM} } {} integrity_check pagesize-2.$PGSZ.17 } finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > | 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 | execsql {SELECT count(*) FROM t1} } 38 do_test pagesize-2.$PGSZ.16 { execsql {DROP TABLE t1} ifcapable {vacuum} {execsql VACUUM} } {} integrity_check pagesize-2.$PGSZ.17 db close file delete -force test.db sqlite3 db test.db do_test pagesize-2.$PGSZ.30 { execsql " CREATE TABLE t1(x); PRAGMA temp.page_size=$PGSZ; CREATE TEMP TABLE t2(y); PRAGMA main.page_size; PRAGMA temp.page_size; " } [list 1024 $PGSZ] db close file delete -force test.db sqlite3 db test.db do_test pagesize-2.$PGSZ.40 { execsql " PRAGMA page_size=$PGSZ; CREATE TABLE t1(x); CREATE TEMP TABLE t2(y); PRAGMA main.page_size; PRAGMA temp.page_size; " } [list $PGSZ $PGSZ] } finish_test |