aboutsummaryrefslogtreecommitdiff
path: root/src/tclsqlite.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-06-13 12:34:38 +0000
committerdrh <drh@noemail.net>2016-06-13 12:34:38 +0000
commitedc4024b9da4374f78d5dfb8e108144415e7467e (patch)
treeefbf92e99513a8644b75facd9a260fd3bf9208d3 /src/tclsqlite.c
parent4d249e61289c76b41a880126ceb44bf97e14fb8b (diff)
downloadsqlite-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.c6
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;