Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch master-journal-temp-files Excluding Merge-Ins
This is equivalent to a diff from 5ffec5db to 355d1232
2017-11-17
| ||
13:21 | Do not count temporary databases that have been attached using ATTACH when figuring out if a master-journal file is required by a transaction. (check-in: 93e012a3 user: dan tags: trunk) | |
08:20 | Avoid creating a master journal if all or all but one of the databases in the transaction is a temp file. (Closed-Leaf check-in: 355d1232 user: dan tags: master-journal-temp-files) | |
2017-11-16
| ||
20:48 | In the LSM extension, ensure that empty space on pages is zeroed before they are written to disk. This helps with compressed databases, and stops valgrind complaining about uninitialized bytes and write(). (check-in: 5ffec5db user: dan tags: trunk) | |
19:04 | Add a missing "finish_test" to the end of the stmtvtab1.test script. (check-in: e0b5c058 user: drh tags: trunk) | |
Changes to src/vdbeaux.c.
︙ | ︙ | |||
2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 | }; Pager *pPager; /* Pager associated with pBt */ needXcommit = 1; sqlite3BtreeEnter(pBt); pPager = sqlite3BtreePager(pBt); if( db->aDb[i].safety_level!=PAGER_SYNCHRONOUS_OFF && aMJNeeded[sqlite3PagerGetJournalMode(pPager)] ){ assert( i!=1 ); nTrans++; } rc = sqlite3PagerExclusiveLock(pPager); sqlite3BtreeLeave(pBt); } | > | 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 | }; Pager *pPager; /* Pager associated with pBt */ needXcommit = 1; sqlite3BtreeEnter(pBt); pPager = sqlite3BtreePager(pBt); if( db->aDb[i].safety_level!=PAGER_SYNCHRONOUS_OFF && aMJNeeded[sqlite3PagerGetJournalMode(pPager)] && sqlite3PagerIsMemdb(pPager)==0 ){ assert( i!=1 ); nTrans++; } rc = sqlite3PagerExclusiveLock(pPager); sqlite3BtreeLeave(pBt); } |
︙ | ︙ |
Changes to test/mjournal.test.
︙ | ︙ | |||
75 76 77 78 79 80 81 | hexio_write test1 0 abcd } {2} do_execsql_test 1.6 { SELECT * FROM t1; } | > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | hexio_write test1 0 abcd } {2} do_execsql_test 1.6 { SELECT * FROM t1; } #------------------------------------------------------------------------- # Check that master journals are not created if the transaction involves # multiple temp files. # db close testvfs tvfs tvfs filter xOpen tvfs script open_cb set ::open "" proc open_cb {method file arglist} { lappend ::open $file } proc contains_mj {} { foreach f $::open { set t [file tail $f] if {[string match *mj* $t]} { return 1 } } return 0 } # Like [do_execsql_test], except that a boolean indicating whether or # not a master journal file was opened ([file tail] contains "mj") or # not. Example: # # do_hasmj_test 1.0 { SELECT 'a', 'b' } {0 a b} # proc do_hasmj_test {tn sql expected} { set ::open [list] uplevel [list do_test $tn [subst -nocommands { set res [execsql "$sql"] concat [contains_mj] [set res] }] [list {*}$expected]] } forcedelete test.db forcedelete test.db2 forcedelete test.db3 sqlite3 db test.db -vfs tvfs do_execsql_test 2.0 { ATTACH 'test.db2' AS dbfile; ATTACH '' AS dbtemp; ATTACH ':memory:' AS dbmem; CREATE TABLE t1(x); CREATE TABLE dbfile.t2(x); CREATE TABLE dbtemp.t3(x); CREATE TABLE dbmem.t4(x); } # Two real files. do_hasmj_test 2.1 { BEGIN; INSERT INTO t1 VALUES(1); INSERT INTO t2 VALUES(1); COMMIT; } {1} # One real, one temp file. do_hasmj_test 2.2 { BEGIN; INSERT INTO t1 VALUES(1); INSERT INTO t3 VALUES(1); COMMIT; } {0} # One file, one :memory: db. do_hasmj_test 2.3 { BEGIN; INSERT INTO t1 VALUES(1); INSERT INTO t4 VALUES(1); COMMIT; } {0} finish_test |