diff options
author | dan <dan@noemail.net> | 2009-10-15 18:35:38 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2009-10-15 18:35:38 +0000 |
commit | 937d0dea4fa934618454ebbe1ebfb5b8c9aae4d9 (patch) | |
tree | b01252eb93bbd4b1e2a9f786ed1f2466df44120a /src/tclsqlite.c | |
parent | 9bd42e96ac36aa940ebec2eb51e3def19c0434ea (diff) | |
download | sqlite-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.c | 10 |
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; } |