Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Honor the SQLITE_OPEN_READONLY flag even on a :memory: or temporary database, even though such a database is pointless. Ticket #3908. (CVS 6748) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
73ba841ac1ed39fb09b3917bafe0ce34 |
User & Date: | drh 2009-06-11 17:32:45.000 |
Context
2009-06-12
| ||
02:27 | Modifications to the parser to eliminate unreachable code. (CVS 6749) (check-in: 457e0b245b user: drh tags: trunk) | |
2009-06-11
| ||
17:32 | Honor the SQLITE_OPEN_READONLY flag even on a :memory: or temporary database, even though such a database is pointless. Ticket #3908. (CVS 6748) (check-in: 73ba841ac1 user: drh tags: trunk) | |
17:04 | Add an ALWAYS() to a conditional in where.c. (CVS 6747) (check-in: 1fdb3e1e9a user: drh tags: trunk) | |
Changes
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.593 2009/06/11 17:32:45 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" /* ** Macros for troubleshooting. Normally turned off */ |
︙ | ︙ | |||
3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 | ** ** This branch is also run for an in-memory database. An in-memory ** database is the same as a temp-file that is never written out to ** disk and uses an in-memory rollback journal. */ tempFile = 1; pPager->state = PAGER_EXCLUSIVE; } /* The following call to PagerSetPagesize() serves to set the value of ** Pager.pageSize and to allocate the Pager.pTmpSpace buffer. */ if( rc==SQLITE_OK ){ assert( pPager->memDb==0 ); | > | 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 | ** ** This branch is also run for an in-memory database. An in-memory ** database is the same as a temp-file that is never written out to ** disk and uses an in-memory rollback journal. */ tempFile = 1; pPager->state = PAGER_EXCLUSIVE; readOnly = (vfsFlags&SQLITE_OPEN_READONLY); } /* The following call to PagerSetPagesize() serves to set the value of ** Pager.pageSize and to allocate the Pager.pTmpSpace buffer. */ if( rc==SQLITE_OK ){ assert( pPager->memDb==0 ); |
︙ | ︙ |
Changes to test/openv2.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2007 Sep 3 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # # Tests on the sqlite3_open_v2() interface. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2007 Sep 3 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # # Tests on the sqlite3_open_v2() interface. # # $Id: openv2.test,v 1.2 2009/06/11 17:32:45 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl db close file delete -force test.db test.db-journal do_test openv2-1.1 { |
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 | db eval {SELECT name FROM sqlite_master} } {t1} do_test openv2-1.4 { catchsql { INSERT INTO t1 VALUES(123) } } {1 {attempt to write a readonly database}} finish_test | > > > > > > > > > > > > > > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | db eval {SELECT name FROM sqlite_master} } {t1} do_test openv2-1.4 { catchsql { INSERT INTO t1 VALUES(123) } } {1 {attempt to write a readonly database}} # Ticket #3908 # Honor SQLITE_OPEN_READONLY even on an in-memory database, even though # this is pointless. # do_test openv2-2.1 { db close sqlite3 db :memory: -readonly 1 db eval {SELECT * FROM sqlite_master} } {} do_test openv2-2.2 { catchsql {CREATE TABLE t1(x)} } {1 {attempt to write a readonly database}} finish_test |