Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made on an RBU vacuum handle. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
bef216dfa1456a787e3d9c74936ee1c6 |
User & Date: | dan 2019-01-03 15:17:01.041 |
Context
2019-01-03
| ||
15:22 | Fix a harmless compiler warning in the CSV extension. (check-in: fbcd72565f user: drh tags: trunk) | |
15:17 | Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made on an RBU vacuum handle. (check-in: bef216dfa1 user: dan tags: trunk) | |
00:44 | Fix the geopoly_svg() function so that it returns NULL when given zero arguments. (check-in: 120cb17683 user: drh tags: trunk) | |
Changes
Added ext/rbu/rbuvacuum3.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | # 2019 Jan 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. # #*********************************************************************** # # This file contains tests for the RBU module. More specifically, it # contains tests to ensure that the sqlite3rbu_vacuum() API works as # expected. # source [file join [file dirname [info script]] rbu_common.tcl] set testprefix rbuvacuum3 do_execsql_test 1.0 { CREATE TABLE t1(a PRIMARY KEY, b, c); CREATE INDEX i1b ON t1(b); CREATE INDEX i1c ON t1(c); WITH s(i) AS ( VALUES(1) UNION ALL SELECT i+1 FROM s WHERE i<100 ) INSERT INTO t1 SELECT i, randomblob(100), randomblob(100) FROM s; } forcedelete state.db do_test 1.1 { sqlite3rbu_vacuum rbu test.db state.db while {1} { set rc [rbu step] if {$rc!="SQLITE_OK"} break rbu savestate } rbu close } {SQLITE_DONE} do_test 1.2 { sqlite3rbu_vacuum rbu test.db state.db while {1} { set rc [rbu step] if {$rc!="SQLITE_OK"} break rbu savestate } rbu close } {SQLITE_DONE} do_test 1.3 { while {1} { sqlite3rbu_vacuum rbu test.db state.db set rc [rbu step] if {$rc!="SQLITE_OK"} break rbu savestate rbu close } rbu close } {SQLITE_DONE} finish_test |
Changes to ext/rbu/sqlite3rbu.c.
︙ | ︙ | |||
3941 3942 3943 3944 3945 3946 3947 | p->rc = rc; rbuSaveState(p, p->eStage); rc = p->rc; if( p->eStage==RBU_STAGE_OAL ){ assert( rc!=SQLITE_DONE ); if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbRbu, "COMMIT", 0, 0, 0); | | > > > | 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 | p->rc = rc; rbuSaveState(p, p->eStage); rc = p->rc; if( p->eStage==RBU_STAGE_OAL ){ assert( rc!=SQLITE_DONE ); if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbRbu, "COMMIT", 0, 0, 0); if( rc==SQLITE_OK ){ const char *zBegin = rbuIsVacuum(p) ? "BEGIN" : "BEGIN IMMEDIATE"; rc = sqlite3_exec(p->dbRbu, zBegin, 0, 0, 0); } if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbMain, "BEGIN IMMEDIATE", 0, 0,0); } p->rc = rc; return rc; } |
︙ | ︙ |