aboutsummaryrefslogtreecommitdiff
path: root/src/tclsqlite.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2009-10-15 18:35:38 +0000
committerdan <dan@noemail.net>2009-10-15 18:35:38 +0000
commit937d0dea4fa934618454ebbe1ebfb5b8c9aae4d9 (patch)
treeb01252eb93bbd4b1e2a9f786ed1f2466df44120a /src/tclsqlite.c
parent9bd42e96ac36aa940ebec2eb51e3def19c0434ea (diff)
downloadsqlite-937d0dea4fa934618454ebbe1ebfb5b8c9aae4d9.tar.gz
sqlite-937d0dea4fa934618454ebbe1ebfb5b8c9aae4d9.zip
Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r--src/tclsqlite.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c
index 5f5517ac2..3e7a513e7 100644
--- a/src/tclsqlite.c
+++ b/src/tclsqlite.c
@@ -1128,6 +1128,16 @@ static int dbPrepareAndBind(
}
pPreStmt->nParm = iParm;
*ppPreStmt = pPreStmt;
+
+ /* Call sqlite3_reoptimize() to optimize the statement according to
+ ** the values just bound to it. If SQLITE_ENABLE_STAT2 is not defined
+ ** or the statement will not benefit from re-optimization, this
+ ** call is a no-op. */
+ if( SQLITE_OK!=sqlite3_reoptimize(pPreStmt->pStmt) ){
+ Tcl_SetObjResult(interp, dbTextToObj(sqlite3_errmsg(pDb->db)));
+ return TCL_ERROR;
+ }
+
return TCL_OK;
}