diff options
author | dan <dan@noemail.net> | 2010-05-03 12:14:15 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2010-05-03 12:14:15 +0000 |
commit | 87c1fe1b69aa55598c3ba5d8a0bb9cf76ed8dda1 (patch) | |
tree | 6cf3d2250c763ceddd68300f7af8c6048cef53f8 /src | |
parent | 5a299f9134bb2f3aaa4412739f59be1a25219ca5 (diff) | |
download | sqlite-87c1fe1b69aa55598c3ba5d8a0bb9cf76ed8dda1.tar.gz sqlite-87c1fe1b69aa55598c3ba5d8a0bb9cf76ed8dda1.zip |
Have sqlite3_wal_checkpoint() populate the database handle error message and error code (as returned by sqlite3_errmsg() and sqlite3_errcode()).
FossilOrigin-Name: ff234cf574c7ae384ab1ebc79b2171ef0541bc91
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 4 | ||||
-rw-r--r-- | src/test1.c | 30 |
2 files changed, 33 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index f6a343e85..2767878f8 100644 --- a/src/main.c +++ b/src/main.c @@ -1254,12 +1254,14 @@ int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb){ } if( iDb<0 ){ rc = SQLITE_ERROR; + sqlite3Error(db, SQLITE_ERROR, "unknown database: %s", zDb); }else{ rc = sqlite3Checkpoint(db, iDb); + sqlite3Error(db, rc, 0); } sqlite3_mutex_leave(db->mutex); - return rc; + return sqlite3ApiExit(db, rc); } /* diff --git a/src/test1.c b/src/test1.c index b5fda952c..0a886e9b4 100644 --- a/src/test1.c +++ b/src/test1.c @@ -4868,6 +4868,35 @@ static int test_unlock_notify( } #endif +/* +** tclcmd: sqlite3_wal_checkpoint db ?NAME? +*/ +static int test_wal_checkpoint( + ClientData clientData, /* Unused */ + Tcl_Interp *interp, /* The TCL interpreter that invoked this command */ + int objc, /* Number of arguments */ + Tcl_Obj *CONST objv[] /* Command arguments */ +){ + char *zDb = 0; + sqlite3 *db; + int rc; + + if( objc!=3 && objc!=2 ){ + Tcl_WrongNumArgs(interp, 1, objv, "DB ?NAME?"); + return TCL_ERROR; + } + + if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){ + return TCL_ERROR; + } + if( objc==3 ){ + zDb = Tcl_GetString(objv[2]); + } + rc = sqlite3_wal_checkpoint(db, zDb); + Tcl_SetResult(interp, (char *)t1ErrorName(rc), TCL_STATIC); + return TCL_OK; +} + /* ** tcl_objproc COMMANDNAME ARGS... @@ -5089,6 +5118,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){ #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY { "sqlite3_unlock_notify", test_unlock_notify, 0 }, #endif + { "sqlite3_wal_checkpoint", test_wal_checkpoint, 0 }, }; static int bitmask_size = sizeof(Bitmask)*8; int i; |