diff options
author | drh <drh@noemail.net> | 2016-06-13 12:34:38 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-06-13 12:34:38 +0000 |
commit | edc4024b9da4374f78d5dfb8e108144415e7467e (patch) | |
tree | efbf92e99513a8644b75facd9a260fd3bf9208d3 /src/tclsqlite.c | |
parent | 4d249e61289c76b41a880126ceb44bf97e14fb8b (diff) | |
download | sqlite-edc4024b9da4374f78d5dfb8e108144415e7467e.tar.gz sqlite-edc4024b9da4374f78d5dfb8e108144415e7467e.zip |
Fix the "onecolumn" and "exists" methods of the TCL interface so that they
work in combination with the "profile" callback.
FossilOrigin-Name: d362ba157f993fc74a590cf15a9a2fa589278dd7
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r-- | src/tclsqlite.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c index d6a36118c..476bdf235 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -2325,6 +2325,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){ */ case DB_EXISTS: case DB_ONECOLUMN: { + Tcl_Obj *pResult = 0; DbEvalContext sEval; if( objc!=3 ){ Tcl_WrongNumArgs(interp, 2, objv, "SQL"); @@ -2335,14 +2336,15 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){ rc = dbEvalStep(&sEval); if( choice==DB_ONECOLUMN ){ if( rc==TCL_OK ){ - Tcl_SetObjResult(interp, dbEvalColumnValue(&sEval, 0)); + pResult = dbEvalColumnValue(&sEval, 0); }else if( rc==TCL_BREAK ){ Tcl_ResetResult(interp); } }else if( rc==TCL_BREAK || rc==TCL_OK ){ - Tcl_SetObjResult(interp, Tcl_NewBooleanObj(rc==TCL_OK)); + pResult = Tcl_NewBooleanObj(rc==TCL_OK); } dbEvalFinalize(&sEval); + if( pResult ) Tcl_SetObjResult(interp, pResult); if( rc==TCL_BREAK ){ rc = TCL_OK; |